Copier coller tableau d'une feuille dans un autre classeur

cs_Pedro77 Messages postés 7 Date d'inscription jeudi 5 mai 2011 Statut Membre Dernière intervention 23 août 2013 - 22 août 2013 à 17:59
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 - 23 août 2013 à 11:24
Bonjour à tous,

ça fait un moment que je cherche et bidouille, mais ça ne vient pas...
j'aimerai copier un morceau d'un tableau d'une feuille A1 d'un classeur A dans un autre classeur B, puis ensuite passer à la feuille A2 à la suite du tableau classeur B.

j'ai écrit ça (en me servant d'une macro enregistrée bidouillée) mais ça ne marche pas évidemment.....

Sub Copier2()

For f = 1 To 31
'j'ai 31 onglets à copier'

Windows("ClasseurA").Activate
Sheets(f).Range("B14:Q36").Copy

For i = 3 To 5000
Windows("ClasseurB").Activate
Cells(i + 23, 2).Paste
'le tableau que je veux, contient 23 lignes, et j'aimerai donc que la suite se colle après la 1ere partie'
Next i

Next f

End Sub

Merci de votre aide

5 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 22/08/2013 à 19:22
Bonjour,
1) évite les lourdeurs (nul besoin d'activer)
2) ouvre ton aide VBA à la rubrique Copy (Méthode Range.Copy) et utilise son argument destination. Cette méthode te permet de copier d'un seul coup toute la plage b(nul besoin d'une boucle).
PS : je viens d'ouvrir cette rubrique : tu y as même un exemple entre deux feuilles d'un même classeur. !
Pour deux classeurs différents : faire précéder par WorkBooks(".....")
0
cs_Pedro77 Messages postés 7 Date d'inscription jeudi 5 mai 2011 Statut Membre Dernière intervention 23 août 2013
23 août 2013 à 09:28
ok merci.
j'ai continué, essayé avec Workbooks mais ça marche pas.. ça me gonfle. on se dit toujours qu'avec un petit ^programme vba, on va perdre moins de temps à le faire à la main. mais là je doute..................

Sub Copier3()

For f = 1 To 31

Windows("Feuille 1.xls").Activate
Worksheets(f).Range("B14:Q36").Copy

For i = 3 To 65536 Step 23
Windows("Feuille 2.xlsm").Activate
If Worksheets("Feuil2").Cells(i, 3) = "" Then Exit For
Next

Next f

End Sub
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 23/08/2013 à 11:07
Ce qui montre que :
1) tu n'as tenu aucun compte de ce que je te disais (pas de activate, select(, etc ... et pas de boucle)
2) tu n'as pas lu la rubrique Range.Copy de ton aide VBA !:
Ce n'est pas sérieux et tu n'iras pas loin sans cette petite étude !
Bon ...
Essaye donc :
WorkBooks("ClasseurA").WorkSheets("Feuil1").Range("B14:Q36").Copy Destination:= WorkBooks("ClasseurB").WorkSheets("Feuil2").Range("B26")

Pour autant que :
Ton classeur 1 s'appelle bien ClasseurA et que ton classeur B s'appelle bien ClasseurB, que les deux classeurs soient ouverts :
Copiera la plage B14:Q36 de la feuille Feuil1 du classeurA vers la feuille Feuil2 du classeur ClasseurB, et ce : à partir de la cellule B26 de la feuille Feuil2 du classeur B
Conclusion : ton aide VBA n'est pas là juste pour faire beau mais pour être lue ...
C'est tout bête et il ne faut rien d('autre !
0
cs_Pedro77 Messages postés 7 Date d'inscription jeudi 5 mai 2011 Statut Membre Dernière intervention 23 août 2013
Modifié par cs_Pedro77 le 23/08/2013 à 11:25
Bon alors, ce n'est pas parce que j'ai fait un copier coller d'un code, que j'ai pas tenu compte de tes indications ! seulement quand j'ai mis Workbooks.patati patata ça n'as pas marché, donc j'en étais revenu à l'Activation.

enfin si je fais une boucle, c'est parce que je veux copier le tableau B14:Q36 de la feuille 1, puis le tableau B14:Q36 de la feuille 2, puis le tableau B14:Q36 de la feuille 3, etc.

merci quand même pour le bout, mais non merci de ton attitude dédaigneuse. si tu n'avais pas envie de m'aider, la flemme ou problème trop simple pour toi, fallait pas revenir.
0

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

Posez votre question
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
23 août 2013 à 11:24
J'en prends bonne note.
Et n'aide que ceux qui sont prêts à s'aider également et, surtout, qui suivent ce qui leur est dit et les conseils qui leur sont donnés.. J'ignore en effet ceux qui ne font pas cet effort. Bonne chance, donc.
0
Rejoignez-nous