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

Macros et VBA Excel Discussion :

Copier une feuille Excel dans une autre : Erreur 9


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2008
    Messages : 95
    Points : 63
    Points
    63
    Par défaut Copier une feuille Excel dans une autre : Erreur 9
    Bonjour,

    J'ai un document Excel (appelons le document1) qui contient 3 feuilles, avec sur chacunes différents boutons (donc Macro en VBA à chaque fois).

    J'ai un document existant Vierge (document 2) qui ne se trouvera pas dans le même dossier, mais comme pour l'instant j'ai une erreur, je le mets dans le même dossier que mon document excel 1.

    Mon but : copier la feuille 1 de mon document 1 en feuille 1 de mon document 2 et la feuille 3 de mon document 1 en feuille 2 de mon document 2, mais à chaque fois SANS les boutons (et donc sans macro).

    Voici mon code :

    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
    Sub Bouton2_QuandClic()
    'Cree document Excel sans Macro
     
    Dim wbSource As Workbook
    Dim wbCible As Workbook
    Dim CelSource As Range
    Dim CelCible As Range
    Dim shSource As Worksheet
    Dim shCible As Worksheet
     
    Set wbSource = ThisWorkbook
    Set wbCible = Workbooks("document2.xls")
     
    Set shSource = wbSource.Worksheets(1)
    Set shCible = wbCible.Worksheets(1)
     
    Set CelSource = shSource.Range("a1")
    Set CelCible = shCible.Range("a1")
     
    CelSource.Copy Destination:=CelCible
     
    End sub
    Pour l'instant, je fais juste la case A1 de mon document 1,
    mais à la ligne :
    Set wbCible = Workbooks("document2.xls")
    me fait : "Erreur d'éxecution 9 : L'indice n'appartient pas à la selection"

    J'ai aussi essayé avec : Windows("document2").Activate

    et j'ai essayé aussi en mettant le chemin complet ( C:\ ..etc) mais rien à faire, toujours là même erreur, j'ai même mis un document non existant et ça me mettait pas la meme erreur ! (alors qu'il aurait pu mettre "document non trouvé" ... )

    Je sèche complètement,
    j'espère que vous trouverez mon erreur...

    Merci d'avance !

    Si je trouve avant d'avoir une réponse ici, je vous en informe !

  2. #2
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Bonjour,

    Ton classeur cible est bien ouvert avant d'exécuter la macro ?
    LES FAQ OFFICE - LES COURS OFFICE - LES COURS EXCEL - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

    Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2008
    Messages : 95
    Points : 63
    Points
    63
    Par défaut
    ah non ! :$

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2008
    Messages : 95
    Points : 63
    Points
    63
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Workbooks.Open "\\Scm1\...\document2.xls"
    Set wbCible = Workbooks("document2.xls")
    Voilà qui est mieux !

    Mais désormais, il me fait pas un copier/coller en valeur... et comme j'ai des formules ça passe pas. Mais je vois dans l'aide que la méthode Copy n'a pas d'option pour une destination avec un collé en valeur,
    et quand j'enregistre une macro pour voir le fonctionnement je vois pas comment adapter à mon code ... :$

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub Macro1()
    '
        Range("A1:E5").Select
        Selection.Copy
        ActiveWindow.SmallScroll Down:=27
        Range("A58").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
     
    End Sub

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2008
    Messages : 95
    Points : 63
    Points
    63
    Par défaut
    Voilà, je me réveille une bonne fois pour toute ce matin, et j'arrête de crier au secours ! Je vous donne mon code final, ça pourrait peut-être aider de futur pas réveillé du lundi matin...

    et merci Fring !

    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
    Sub Bouton2_QuandClic()
    'Cree document Excel sans Macro
     
    Dim wbSource As Workbook
    Dim wbCible As Workbook
    Dim CelSource As Range
    Dim CelCible As Range
    Dim shSource As Worksheet
    Dim shCible As Worksheet
     
    Set wbSource = ThisWorkbook
    Workbooks.Open "\\Scm1\...\document2.xls"
    Set wbCible = Workbooks("document2.xls")
     
    Set shSource = wbSource.Worksheets(1)
    Set shCible = wbCible.Worksheets(1)
     
    Set CelSource = shSource.Range("a1:e6")
    Set CelCible = shCible.Range("a1:e6")
     
    CelSource.Copy
    CelCible.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
     
    End Sub

  6. #6
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Une autre solution éventuelle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub test()
    Dim WBsource As Workbook, WBcible As Workbook
     
    Set WBsource = Workbooks("classeur1.xls")
    Set WBcible = Workbooks("classeur2.xls")
     
    WBcible.Sheets(1).Range("A1:E6") = WBsource.Sheets(1).Range("A1:E6").Value
    WBcible.Sheets(2).Range("A1:E6") = WBsource.Sheets(3).Range("A1:E6").Value
     
    End Sub
    à condition que ta plage de valeurs soit toujours identique, sinon faut adapter le code pour une plage variable
    LES FAQ OFFICE - LES COURS OFFICE - LES COURS EXCEL - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

    Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2008
    Messages : 95
    Points : 63
    Points
    63
    Par défaut
    Je suis preneuse ! Ca va m'économiser quelques lignes de code...

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 25/11/2014, 09h57
  2. [XL-2003] Copier 2 feuilles excel dans une seule
    Par coolman53 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 04/09/2012, 11h13
  3. Réponses: 20
    Dernier message: 30/08/2012, 14h15
  4. [XL-2007] copier une feuille excel d'une instance excel à une autre
    Par marcelisa2 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 20/03/2012, 23h44
  5. [AC-2003] Copier une image d'une table Access dans une feuille Excel
    Par Kloun dans le forum VBA Access
    Réponses: 4
    Dernier message: 22/02/2011, 10h30

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