Copier les feuilles d'un classeur dans un nouveau

Comment sauvegarder une seule feuille de mon classeur dans un autre fichier qui sera créé à cet effet?

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 sub

Astuce illustrée par ce classeur
fc-manipfichiers

Auteur :

Mots clefs associés à cette page : , , , , , , ,