[résolu][Macro VBA Excel]Copier/coller entre classeurs&sheets
Forum Programmation : [résolu][Macro VBA Excel]Copier/coller entre classeurs&sheets
Salut
et déjà merci de venir me lire / m'aider.
à défaut de trouver un exemple parlant de mon problème, je viens vous demander un exemple :
je dois copier les cellules B2 à D2
depuis : le classeur "départ.xls", feuille "M"
vers : le classeur "arrivée.xls", feuille "N", cellules E2 à G2
puis entrer la valeur "123456" dans la feuille "O" (toujours dans le classeur arrivée.xls)
pourriez vous me donner un petit bout de code pour me montrer comment faire ca !? j'adapterais à mes besion
car si je vous montre mon code qui est assez important ca ne serait pas très parlant ou très long à expliquer :-/
et puis données professionnelles et confidentielles
ce serait surtout pour voiur les fonctions utilisées pour le "jonglage" entre les feuilles des différents classeurs car sur le net j'ai trouvé du sheet, worksheets, worksheet("A" ), cells, range ...etc. et je ne fais plus la différence entre toutes ces fonctions.
Cordialement.
Message édité par gryphus71 le 07-12-2007 à 19:10:41
Salut, Gryphus71
Essaie avec ceci (Excel 2003):
Workbooks("départ.xls" ).Sheets("M" ).Range("B2
2" ).Copy
Workbooks("arrivée.xls" ).Sheets("N" ).Paste Destination:=Range("E2:G2" )
Workbooks("arrivée.xls" ).Sheets("O" ).Range("E2:G2" ) = "123456"
Le code ci-dessus suppose que les classeurs arrivée et départ sont ouverts.
Si ce n'est pas le cas, tu peux utiliser:
Workbooks.Open "C:\arrivée.xls"
Bonne continuation
ok merci bien ;-)
et est ce qu'après avoir fait le copy, je peux de suite fermé le classeur départ.xls avant de faire le paste ?
et comment fonctionne "Application.ScreenUpdating = True" ? car je voudrais faire mes manip de façon invisible (ca évitera des bug d'affichage au passage ^^ et je ne tuerais pas mes collègues épileptiques x-D )
Salut, Gryphus
Je te conseille de fermer le classeur de départ après avoir coller les valeurs, donc après le .Paste .
Concernant le ScreenUpdating, en cette période de Téléthon, je trouve louable de ta part de vouloir préserver tes collègues malades
Place un "Application.ScreenUpdating = False" avant la première instruction de ton code et n'oublie pas de mettre un "Application.ScreenUpdating = True" après la dernière instruction.
Bonne continuation
arf arf arf ... le copy ne fonctionne pas, j'ai tapé ça :
Code :
|
message d'erreur :
Erreur d'exécution '424':
Objet requis
et le debbug se position sur le Worksheet ..
je viens de tester avec ça :
Code :
|
j'ai maintenant l'erreur :
Erreur d'exécution '1004':
La méthode Paste de la classe Worksheet a échoué.
Debbug ciblé sur ActiveSheet
Message édité par gryphus71 le 07-12-2007 à 15:43:55
Je n'ai rien dit !!!
pour info : il ne faut ni fermer ni sauvegarder de fichier entre un copy et un paste
:-/ 1h pour m'en rendre compte :-/
jeune homme 22 ans recherche belle corde blonde et bien tissée pour relation très ... proche ... (>_< )
Message édité par gryphus71 le 07-12-2007 à 16:00:33
Content que tu t'en sois sorti tout seul
Pour info:
gryphus71 a écrit :
|
Tout ces .Select successifs sont inutiles. Ceci suffit:
Code :
|
C'est ce genre d'instruction qui ralentit grandement l'exécution du code, surtout si on n'utilise pas ScreenUpdating...
Si tu veux en savoir plus, va voir ici, c'est une vrai mine d'or !...
Bonne continuation
merci pour les infos mais je savais déjà tout ça ^^
j'avais fais exprès d'éclater mon code pour bien cibler le problème
mais je fais tant que possible de la même façon que toi.
et pour le site exclabo, je confirme : il est très bien fait ! je n'y ai (pour le moment) passé que peu de temps mais vraiment très bien expliqué pour ceux que ça peut intéresser !
Il y a 662 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.
