VBA excel copier coller Bugg ou Non ?

Bonjour,

Désolé je me suis trompé de plate forme et je ne sais pas la rééditer sur la plate forme programmation ?

Après des heures de recherches sur les forums , quelqu'un peut-il me dire si oui ou non il est possible de copier des cellules d'une feuille d'un classeur X et de les copier sur une feuille d'un autre classeur Y en codant en VBA. Bcp de personne se posent cette question, et n'obtiennenent pas de réponse. Et toujours les mêmes interrogations, "erreur 1004" comme message.

voici le code :

Fichier = Application.GetOpenFilename
Workbooks.Open Fichier
Sheets(1).Select
Selection.Copy

Windows("Fiche_d'entretien_OSP_2008_1.xls").Activate
Sheets(2).Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Range("C6").Select

et rien ne se passe ......

Merci à tous pour votre aide,

aurelie.
Configuration: Windows XP
Mozilla 1.6

9 réponses

  1. Contributeur
    l'erreur 9 c'est un problème dans une déclaration de variable ou de tableau.
    A+
    1. Contributeur
      bonjour,
      si j'ai bien compris il faut copier une feuille d'un autre classeur...
          Sheets("Feuil1").Copy Before:=Workbooks("AutreClasseur.xls").Sheets(1)

      A+
      1. Bonsoir Lermitte222,

        Merci c'est la bonne instruction, j'ai fini de coder cette partie là, et je planche sur une autre partie qui pose pb d'erreur 9.
        Merci bcp pour ton aide incomensurable........bisous aurelie
    2. Bonjour,

      Voila comment j'ai contourné le problème. J'ai tout simplement extrait le code qui copie la feuille, vers une macro distincte dans une module.

      Code te ta macro:
      Private Sub insérer_Click()
        MsgBox "confirmer insérer fichier : ?", vbYesNo
        
      
       Fichier = Application.GetOpenFilename
      Workbooks.Open Fichier   'ouverture arborescence
      
       ChDir "C:\Documents and Settings\All Users\"
       ActiveWorkbook.SaveAs Filename:= _
      "C:\Documents and Settings\All Users\buffer.xls", _
      FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
      ReadOnlyRecommended:=False, CreateBackup:=False  'sauvegarde as
      
       ' MsgBox Workbooks(ActiveWorkbook.Name).FullName chemin accès: facultatif
       
      Workbooks("Fiche_d'entretien_OSP_2008bis.xls").Activate  ' fiche OSP active
        Sheets(5).Select
        
        
        '******* copier coller icone
        
          Selection.Name = "Logo"
          Selection.Copy
          Sheets("Volume et couts").Select
          Range("A1").Select
          ActiveSheet.Paste
          Selection.ShapeRange.IncrementLeft 190
          Selection.ShapeRange.IncrementTop 120
          Range("A1").Select
          Range("A2").Select
          
         Call Insere_Buffer
      
          ' ensuite il faut que je fasse le lien de la feuille 2 sur l'icone insérée
          ' et la gestion des erreurs
      End Sub
      


      Et voici la macro Insere_Buffer() à coller dans un module
      Sub Insere_Buffer()
          Windows("buffer.xls").Activate ' feuille buffer active
          Sheets(1).Select   ' selection feuille 1
          Cells.Select
          Selection.Copy  ' copie des cell selectionnées
          Windows("Fiche_d'entretien_OSP_2008bis.xls").Activate ' selection fiche OSP
          Sheets("Feuil2").Select
          Range("A1").Select ' selection feuille 2
          ActiveSheet.Paste ' coller les cells copier
          Range("A1").Select
      End Sub
      


      Bonne continuation...
      1. Contributeur
        bonjour

        Je te propose de remplacer
            Workbooks("buffer.xls").Activate ' feuille buffer active
             Sheets(1).Select   ' selection feuille 1
            Range("A1").Select 'selection cellule (1,1) error 1004
           Cells.Select
            Selection.Copy  ' copie des cell selectionnées
        

        par
        Workbooks("buffer.xls").Activate ' feuille buffer active
             Workbooks("buffer.xls").Sheets(1).Cells.Copy  ' copie des cell selectionnées


        ou en plus facile à manipuler
        dim wb as worksheet
        set wb = Workbooks("buffer.xls")
         wb.Sheets(1).Cells.Copy 
        1. bonjour,

          Ton classeur ne serait-il pas protégé ou les macros désactivés? A mon avis, c'est une histoire de protection. je ne vois pas d'autres explications.

          Si tu veux qu'on examine tes fichiers , fait un Zip et mets les sur https://www.cjoint.com/
          Et n'oublie pas de poster le lien.

          A+.
          1. Bonjour Amigo,

            désolé pour le retard mais j'ai refait mon code, et je tombe tjs sur la même erreur 1004, vraiment je ne vois pas ce qui bloque, je joins à mon post le lien pour que tu puisses regarder si tu as le temps ..... https://www.cjoint.com/?fliRh4tInE

            j'explique mon appli. : sur la feuille volume et couts j'ai mis deux boutons insérer fichier et supprimer fichier, quand je clique sur insérer fichier j'ouvre l'arboresence pour choisir mon fichier .xls (exclusivement), sur la feuille volume et couts, je créé une icone qui me sert à faire le lien pour rappeller le fichier choisi dans l'arborescence que je veux insérer dans la feuille volume et couts mais je n'arrive pas à copier la feuille choisi donc je ne peux pas aller plus loin. le bouton supprimer fonctionne. Le code n'est pas achevé naturellement car je n'ia pas gérer les erreurs (plus tard quand j'aurai résolu ce pb mais vraiment je désespère)......
            merci pour ton aide, mais j'ai lu dans plusieurs forum que ce problème était connu mais personne ne dit comment le contourner ?

            merci encore, bisous, aurelie.
        2. RE

          Peut-etre il faut aussi ajouter cette ligne

          Fichier = Application.GetOpenFilename
          Workbooks.Open Fichier
          Sheets(1).Select
          Cells.Select
          Selection.Copy

          'Windows("Fiche_d'entretien_OSP_2008_1.xls").Activate
          Windows("Fiche_d'entretien_OSP_2008_1").Activate
          Sheets(2).Select
          Range("A1").Select
          Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
          False, Transpose:=False
          Range("C6").Select
          1. Merci Amigo,

            je ne sais pas ce qui se passe, c'est pourtant le BAba d'excel de faire du copier coller et le code n'est pas compliqué, et ca ne fonctionne tjs pas, et sur le pc au job pareil ? franchement, c'est décourageant, je passe un temps infini pour faire marcher cette routine pour rien au bout ..... et je n'arrive pas à contourner le problème, passer par une autre méthode mais je vois pas comment ajouter une feuille d'un classeur vers un autre classeur sans passer par un copier coller ?
            merci quand même à tous pour votre aide précieuse.

            bisous, aurelie
        3. Bonjour,

          essaie avec ce code

          Fichier = Application.GetOpenFilename
          Workbooks.Open Fichier
          Sheets(1).Select
          Cells.Select
          Selection.Copy

          'Windows("Fiche_d'entretien_OSP_2008_1.xls").Activate
          Windows("Fiche_d'entretien_OSP_2008_1").Activate
          Sheets(2).Select
          Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
          False, Transpose:=False
          Range("C6").Select

          A+.
          1. Contributeur
            Tu as quelle version d'Excel?
            Sur Office 2K3 ça fonctionne nickel.
            1. je suis sous office 97
            2. Contributeur
              @aurelie76Oups, alors là je peux plus rien faire. J'ai encore quelqes PC avec Office 2000, mais 97...
              Peut-être quelqu'un d'autre pourra t'aider?
          2. Contributeur
            Hello Aurelie
            Peut-être ai-je mal compris, mais un truc comme ça ne convient-il pas?
            Sub CopyToOtherFile()
                Selection.Copy
                Workbooks.Open "Book1.xls"
                Windows("Book1.xls").Activate
                Sheets(2).Select
                Range("C6").Select
                ActiveSheet.Paste
            End Sub
            --
            Plubarj Tumeur
            1. MErci pour ton aide, mais c'est bien ça le problème, ca met une erreur 1004, impossible de coller une feuille d'un classeur vers une feuille d'un autre classeur, ca parait incroyable tellement la routine est basique ????? je comprend pas que µsoft est laissé un bugg pareil, il doit bien y avoir un moyen !

              merci pour ton aide,

              aurelie.