copie de feuilles d'un classeur à un autre

H

hoss

Guest
Salut,
Toute la question est ds le sujet!!!
En fait, j'ai écrit plusieurs macros qui font plusieurs calculs et stockent les infos dans les feuilles feuil1, feuil2, ....feuil20 de mon classeur.
Je souhaite écrire une macro qui copient ces 20 feuilles de résultats ds un nouveau classeur..
qqn a une idée..
Merci bcp
CIAO
hoss
 
L

leriderfoudu77

Guest
Salut ,
Je suis novice et j'ai deja trouver bon nombresde reponses sur ce forum donc je veux essayer d'y particier.

alors selon moi et ma faible experience

pour copier la feuil1 du classeur3 apres la derniere feuille du classeur4 voiola le code a marquer

Windows("Classeur3").Activate
Sheets("Feuil1").Select
Sheets("Feuil1").Move After:=Workbooks("Classeur4").Sheets(2)

Je ne susi pas completement sur de moi mais j'espere avoir reussia t'aider ou du moin te depaner.

@+
 
F

Franck

Guest
Salut

Je vais essayer moi aussi d'apporter ma petite pierre à l'édifice.
Il doit être possible de faire une boucle afin de copier les 20 feuilles

Windows("Classeur3").Activate
for i =1 to 20
nomfeuil="Feuil" & i
Sheets(nomfeuil).Select
Sheets(nomfeuil).Move After:=Workbooks("Classeur4").Sheets(2)
next

Je n'ai pas verifié que cela fonctionnait. De plus je n'ai pas fait de déclaration de variable.
Dim nomfeuil as string

A bientôt

Franck
 
Y

yeahou

Guest
Bonjour hoss, le riderfoudu77, franck, le forum

la ligne de code suivante te copiera les feuilles que tu désires dans un nouveau classeur, remplace simplement "Feuil1", "Feuil2" par les noms des feuilles que tu veux copier en respectant la même syntaxe.

Cordialement, A+

Sheets(Array("Feuil1", "Feuil2")).Copy
 
H

hoss

Guest
Merci bcp yehaou..
ça a l'air de marcher mais le problème c'est que quand je veux copier plus d'une dizaine de feuilles, il me met un message d'erreur: erreur d'exécution'9' Indice en dehors de la plage... Je ne sais pas si on peut mettre en arguments le nombre de feuilles qu'on veut copier ou pas...
Si vous avez des idées, elles sont les bienvenus..
Merci bcp
ciao
hoss
 
H

hoss

Guest
C'est bon, mnt..ça marche..Je ne sais plus pourquoi mais je pense qu'il faut enlever les classeurs non utiles pour qu'il arrive à créer un nouveau avec bcp de feuilles...
Voilà ma conclusion.
Mais c'est parfait mnt..ça marche
ciao
hoss
 
Y

Yeahou

Guest
Bonjour Hoss

indice hors de la plage signifie nom de feuille ne correspondant pas.
la ligne de code que je t'ai donnée suppose que l'opération se fait sur le classeur actif, pour le faire sur un autre classeur, il faut spécifier

ActiveWorkbook.Sheets(Array("Feuil1", "Feuil2")).Copy'sur classeur actif
ThisWorkbook.Sheets(Array("Feuil1", "Feuil2")).Copy'sur classeur d'origine de la macro
Workbooks("Classeur1.xls").Sheets(Array("Feuil1", "Feuil2")).Copy'sur le classeur nommé classeur1.xls

A+
 
@

@+Thierry

Guest
Bonjour Yeahou, Hoss, Franck, LeRiderFou(!), le Forum

Et bien c'est marrant il y a des jours où les demandes se ressemblent d'un fil à Lien supprimé... Donc je place aussi ici un lien vers une démo pour faire ce genre de choses...

=> Démo Téléchargeable Lien supprimé (18k)

=> Fil de Discussion avec complément d'info Lien supprimé

Bonne Aprèm
@+Thierry
 

Discussions similaires

Statistiques des forums

Discussions
312 827
Messages
2 092 530
Membres
105 448
dernier inscrit
lmoi