IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

Copier une plage de cellules d'un classeur vers un autre classeur [AC-2003]


Sujet :

VBA Access

  1. #1
    Futur Membre du Club
    Inscrit en
    Juin 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 7
    Points : 7
    Points
    7
    Par défaut Copier une plage de cellules d'un classeur vers un autre classeur
    Bonjour à tous,

    Je suis débutant en VB.

    J'aimerais créer un bouton dont le code permet de copier une plage de cellules d'une feuille d'un classeur vers une feuille d'un autre classeur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
     
    Set appExcel = CreateObject("Excel.Application")
     
        'Ouverture d'un fichier Excel
        Set wbExcel1 = appExcel.Workbooks.Open("C:\Documents and Settings\Bureau\Outil_Reporting\tickets.xls")
        Set wbExcel2 = appExcel.Workbooks.Open("C:\Documents and Settings\Bureau\Outil_Reporting\collecte.xls")
     
        'wsExcel correspond à la première feuille du fichier
        Set wsExcel1 = wbExcel.Worksheets(1)
        Set wsExcel2 = wbExcel.Worksheets(1)
     
        wsExcel2.Range("a1:l100").Value = wsExcel1.Range("a1:l100").Value
     
        appExcel.wbExcel2.Save
        appExcel.wbExcel2.saved = True
     
        wbExcel1.Close 'Fermeture du classeur Excel
        wbExcel2.Close 'Fermeture du classeur Excel
        appExcel.Quit 'Fermeture de l'application Excel
     
        'Désallocation mémoire
        Set wsExcel1 = Nothing
        Set wbExcel1 = Nothing
        Set wsExcel2 = Nothing
        Set wbExcel2 = Nothing
        Set appExcel = Nothing
    Cette façon de copier me renvoie l'erreur "Objet requis"

    Merci à ceux qui pourraient m'aider !

  2. #2
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 386
    Points : 19 809
    Points
    19 809
    Billets dans le blog
    66
    Par défaut
    Salut,

    essaie ce code modifié:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    Dim appexcel As Excel.Application
     
    Dim wbexcel1 As Excel.Workbook
    Dim wbexcel2 As Excel.Workbook
     
    Dim wsexcel1 As Excel.Worksheet
    Dim wsexcel2 As Excel.Worksheet
     
    Set appexcel = CreateObject("Excel.Application")
     
    'Ouverture d'un fichier Excel
    Set wbexcel1 = appexcel.Workbooks.Open("C:\Documents and Settings\...\tickets.xls")
    Set wbexcel2 = appexcel.Workbooks.Open("C:\Documents and Settings\...\collecte.xls")
     
    'wsExcel correspond à la première feuille du fichier
    Set wsexcel1 = wbexcel1.Worksheets(1)
    Set wsexcel2 = wbexcel2.Worksheets(1)
     
    wsExcel2.Range("a1:l100").Value = wsExcel1.Range("a1:l100").Value
     
    wbexcel2.Save
    wbexcel2.Saved = True
     
    wbexcel1.Close 'Fermeture du classeur Excel
    wbexcel2.Close 'Fermeture du classeur Excel
    appexcel.Quit 'Fermeture de l'application Excel
     
    'Désallocation mémoire
    Set wsexcel1 = Nothing
    Set wbexcel1 = Nothing
    Set wsexcel2 = Nothing
    Set wbexcel2 = Nothing
    Set appexcel = Nothing
    A+

  3. #3
    Futur Membre du Club
    Inscrit en
    Juin 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 7
    Points : 7
    Points
    7
    Par défaut
    Merci, j'avais enlevé la déclaration des DIM.

    Ca marche bien en ajoutant également la référence vers la bibliothèque MS Excel (Outils > Références).

    Merci beaucoup de votre aide.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Copier une plage de cellule entre 2 classeurs
    Par azertym dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 27/02/2012, 11h11
  2. Copier une plage de cellule
    Par beebe dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 27/06/2008, 17h47
  3. Copier une plage de cellules dans un fichier fermé
    Par COCONUT2 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 31/07/2007, 17h23
  4. [VBA-E] Copier une plage de cellules avec critère
    Par jfamiens dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 13/06/2006, 16h34
  5. [VBA] Copier une plage de cellules dans un fichier fermé
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 25/01/2006, 16h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo