Copier les feuilles d'un classeur dans un nouveau
A mon avis, le plus simple :
sheets("Feuil1").copy
Cela crée un nouveau classeur contenant uniquement une copie de Feuil1.
Et dans le cas d'une sélection multiple de feuilles,
Sheets(Array("Feuil1", "Feuil2")).Copy
Et pour initialiser dynamiquement le nom des feuilles d'un "Array" par une petite procédure, sachant qu'un array est en fait un tableau "constant". Pour utiliser un tableau de variables, il suffit d'utiliser un tableau dimensionné
Dim Feuilles(1 To 2) Feuilles(1) = "feuil1" Feuilles(2) = "feuil2" Sheets(Feuilles).Copy
En développant la macro, on peut ainsi créer un classeur avec toutes les feuilles répondant à une ou plusieurs conditions.
sub Copie()
ReDim Feuilles(1 To 1)
Dim Compteur As Integer
Compteur = 0
Dim Feuille As Worksheet
For Each Feuille In Worksheets
If UCase(Left(Feuille.Name, 6)) = "PIERRE" Then
Compteur = Compteur + 1
ReDim Preserve Feuilles(1 To Compteur)
Feuilles(Compteur) = Feuille.Name
End If
Next Feuille
If Compteur > 0 Then Sheets(Feuilles).Copy
end subAstuce illustrée par ce classeur
fc-manipfichiers
Auteur : Pierre Fauconnier
Mots clefs associés à cette page : copier, feuille, sheet, onglet, fichier, classeur, file, xls
- Vous devez vous identifier ou créer un compte pour écrire des commentaires
