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
    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. 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.
  3. 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?
  4. 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. 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
    2. 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.
    3. 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,

        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
          l'erreur 9 c'est un problème dans une déclaration de variable ou de tableau.
          A+