VBA excel copier coller Bugg ou Non ?

Fermé
aurelie76 Messages postés 88 Date d'inscription samedi 19 avril 2008 Statut Membre Dernière intervention 13 mai 2017 - 9 mai 2008 à 11:29
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 - 14 mai 2008 à 10:35
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.
A voir également:

9 réponses

lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 191
12 mai 2008 à 11:39
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
aurelie76 Messages postés 88 Date d'inscription samedi 19 avril 2008 Statut Membre Dernière intervention 13 mai 2017 3
13 mai 2008 à 22:49
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
0
plubarj Messages postés 101 Date d'inscription jeudi 17 avril 2008 Statut Contributeur Dernière intervention 13 octobre 2008 6
9 mai 2008 à 11:43
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
0
aurelie76 Messages postés 88 Date d'inscription samedi 19 avril 2008 Statut Membre Dernière intervention 13 mai 2017 3
9 mai 2008 à 12:13
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.
0
plubarj Messages postés 101 Date d'inscription jeudi 17 avril 2008 Statut Contributeur Dernière intervention 13 octobre 2008 6
9 mai 2008 à 14:00
Tu as quelle version d'Excel?
Sur Office 2K3 ça fonctionne nickel.
0
aurelie76 Messages postés 88 Date d'inscription samedi 19 avril 2008 Statut Membre Dernière intervention 13 mai 2017 3
9 mai 2008 à 14:23
je suis sous office 97
0
plubarj Messages postés 101 Date d'inscription jeudi 17 avril 2008 Statut Contributeur Dernière intervention 13 octobre 2008 6 > aurelie76 Messages postés 88 Date d'inscription samedi 19 avril 2008 Statut Membre Dernière intervention 13 mai 2017
9 mai 2008 à 14:29
Oups, 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?
0
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+.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
0
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
0
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+.
0
aurelie76 Messages postés 88 Date d'inscription samedi 19 avril 2008 Statut Membre Dernière intervention 13 mai 2017 3
11 mai 2008 à 08:47
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.
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 718
11 mai 2008 à 09:03
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 
0
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...
0
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 191
14 mai 2008 à 10:35
l'erreur 9 c'est un problème dans une déclaration de variable ou de tableau.
A+
0