Déplacer plusieurs feuilles sélectionnées par
Résolu
Gecko62
Messages postés
4
Date d'inscription
Statut
Membre
Dernière intervention
-
-
-
Bonjour,
J'aimerais déplacer plusieurs feuilles sélectionnées par macro dans un nouveau classeur mais la macro que j'ai écrite ne fonctionne pas.
La macro fonctionne jusqu'au 4 dernière ligne et après se plante sans que je ne comprenne pourquoi !
Merci de votre aide
J'aimerais déplacer plusieurs feuilles sélectionnées par macro dans un nouveau classeur mais la macro que j'ai écrite ne fonctionne pas.
Sub CreeFichier() ' ' Définition des variables utilisées Dim NbFeuilles, i As Integer Dim NomFichier As String Dim TableDesFeuilles() As String Dim S As Worksheet Dim X As Byte Dim WB1 As Workbook ' Début de la macro ' Je recherche le nombre totale du classeur NbFeuilles = Sheets.Count i = 0 ' Défini le nom du nouveau fichier en fonction du camp NomFichier = Sheets("Données de base").Range("F25").Value ' Crée le fichier Workbooks.Add ' Sauve le classeur sous nouveau nom ActiveWorkbook.SaveAs Filename:=NomFichier ' MsgBox ("PretMateriel.xls"), vbOKOnly, "Nom du classeur" Workbooks("PretMateriel.xls").Activate ' Sélectionne toutes les feuilles à déplacer du fichier For i = 3 To NbFeuilles ReDim Preserve TableDesFeuilles(X) TableDesFeuilles(X) = Sheets(i).Name X = X + 1 Next Workbooks("PretMateriel.xls").Sheets(TableDesFeuilles).Select ' Les feuilles à déplacer sont bien sélectionnées ' et c'est là que le bas blesse ... ' Déplace toutes les feuilles dans le classeur créé Sheets(Array(TableDesFeuilles)).Move _ Before:=Workbooks(NomFichier).Sheets(1) ' ' ou ' Workbooks("PretMateriel.xls").Sheets(TableDesFeuilles).Move _ Before:=Workbooks(NomFichier).Sheets(1) ' les deux solutions renvoient une erreur
La macro fonctionne jusqu'au 4 dernière ligne et après se plante sans que je ne comprenne pourquoi !
Merci de votre aide
A voir également:
- Déplacer plusieurs feuilles sélectionnées par
- Déplacer colonne excel - Guide
- Comment faire un livret avec des feuilles a4 - Guide
- Regrouper plusieurs feuilles excel en une seule - Guide
- Déplacer barre des taches windows 11 - Guide
- Bruler des feuilles de laurier - Guide
4 réponses
Bonjour,
En principe dans votre boucle comme suit :
En principe dans votre boucle comme suit :
For i = 3 To NbFeuilles Sheets(Sheets(i).Name).Move Before:=Workbooks("nom classeur cible.xlsx").Sheets(1) Next i
Merci le Pingu,
ta solution m'a mis sur la piste et moyennant un petit ajustement cela fonctionne correctement. J'ai rajouté une variable contenant le numéro de feuille à déplacer, car dans le cas contraire la macro voulait copier une feuille qui n'existait plus! Voici donc le code final de la boucle
Une fois encore un très grand merci
ta solution m'a mis sur la piste et moyennant un petit ajustement cela fonctionne correctement. J'ai rajouté une variable contenant le numéro de feuille à déplacer, car dans le cas contraire la macro voulait copier une feuille qui n'existait plus! Voici donc le code final de la boucle
' Déplace toutes les feuilles de la 3ème à la dernière dans le classeur créé For i = 3 To NbFeuilles Sheets(Sheets(z).Name).Move Before:=Workbooks(NomFichier & ".xls").Sheets(1) Workbooks("PretMateriel.xls").Activate Next i
Une fois encore un très grand merci