Public Sub PrintByName(Names As Variant)
Dim s As Worksheet
Dim i As Integer
If IsArray(Names) Then
For Each s In ActiveWorkbook.Worksheets
For i = 0 To UBound(Names)
If StrComp(s.Name, Names(i), vbTextCompare) = 0 Then
s.PrintOut
End If
Next i
Next s
End If
End Sub
Appel comme:
PrintByName Array("FirstSheet", "ThirdSheet", "FourthSheet")
Le lo imbriqué op n'est pas optimal, en ce qui concerne les performances d'exécution. Avec le nombre limité de feuilles qu'un classeur Excel peut contenir, je pense que c'est négligeable. Toutefois, l'utilisation d'un Collection
pour contenir les noms de feuille souhaités au lieu d'un Array
serait mieux.
peut-il être fait dans un lot? par exemple. Puis-je imprimer plusieurs feuilles dans un seul travail d'impression? – Caveatrob