• Initiateur de la discussion Initiateur de la discussion JUMJ
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

J

JUMJ

Guest
Bonjour,

je fais à la fin d'une macro une copie de toutes les feuilles du classeur actif vers un nouveau classeur.

Mon soucis est que cette copie ne fonctionne que pour des feuilles dont le nom et le nombre sont identiques à ceux de ma macro.

Si j'ai une feuille en plus dans mon classeur actif elle n'est pas prise ne compte, de même si un des noms de feuille est différent.

Existe il une fonction permettant de copier toutes les feuilles quelque soit leur nom ou nombre, du type copy.all ?

Merci
 
Sub Macro1()
Sheets(Array('Feuil1', 'Feuil2', 'Feuil3')).Select
Sheets('Feuil3').Activate
Sheets(Array('Feuil1', 'Feuil2', 'Feuil3')).Copy
End Sub

Cette macro copie les feuilles du classeur actif vers un nouveau classeur.
Le problème c'est que les feuilles ont un nom et un nombre, si je relance cette macro elle copiera les 'feuil1' à 'feuil3' dans un autre classeur. Si j'ai une feuille en plus dans le classeur elle ne sera pas copiée de même si son nom est par exemple 'toto'.
 
Salut JUMJ, ninou58, pat1545,

Ton code ne fonctionne pas Ninou, tu ne peux pas mettre un Name puis un Select, ca bug 😱

Donc je te propose un code qui te copie tes feuilles et en plus garde l'ordre de celles-ci :
Code:
Sub Macro2()
Dim i As Integer

For i = 1 To Workbooks('Classeur2').Sheets.Count
    Sheets(i).Copy After:=Workbooks('Classeur4').Sheets(Sheets.Count)
    ActiveSheet.Name = Workbooks('Classeur2').Sheets(i).Name
Next i
End Sub

@+

Message édité par: porcinet82, à: 29/03/2006 16:44
 
Bonjour JUMJ,¨Pat1545, Ninou58, porcinet 82, le forum

voila un code qui fera la copie quel que soient:
-le nombre de feuilles
-le nom du classeur d'origine, (prend le classeur actif)
-le nom du classeur de destination (sera défini par excel au moment de la copie.

Cordialement, A+
Code:
Sub Copy_Feuilles()
Dim Compteur As Integer, Noms_Feuilles()
ReDim Noms_Feuilles(1 To ActiveWorkbook.Worksheets.Count)
For Compteur = 1 To ActiveWorkbook.Worksheets.Count
Noms_Feuilles(Compteur) = ActiveWorkbook.Worksheets(Compteur).Name
Next Compteur
ActiveWorkbook.Worksheets(Noms_Feuilles).Copy
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
4
Affichages
166
Réponses
3
Affichages
326
D
  • Question Question
Réponses
5
Affichages
253
Didierpasdoué
D
Retour