Bonjour Audrey, Christophe, le Forum
La méthode que tu décris n'est pas très pratique, mais en essayant de transfigurer ta description, imaginons un exemple :
Une Feuille nommée : "TaFeuilleContenantLesNoms"
Dans cette feuille en cellule "A1" le nom d'une autre feuille
et idem en A2 une autre feuille et "A3" encore une autre. Les trois feuilles doivent au moins contenir un texte imprimable.
Toujours dans cette feuille tu écris en "B1" un numéro de 1 à 3...
Dans un module Standard tu mets ce code et tu affecte cette macro à un bouton.
Sub AudreyPrintOut()
Dim WS1 As String
Dim WS2 As String
Dim WS3 As String
Dim Typ As String
With Sheets("TaFeuilleContenantLesNoms")
WS1 = .Range("A1")
WS2 = .Range("A2")
WS3 = .Range("A3")
Typ = UCase(.Range("B1"))
End With
On Error GoTo ErrorHandler
Select Case Typ
Case "1"
Sheets(WS1).Activate
Case "1P"
With Sheets(WS1)
.Activate
.PrintOut
End With
Case "2"
Sheets(WS2).Activate
Case "2P"
With Sheets(WS2)
.Activate
.PrintOut
End With
Case "3"
Sheets(WS3).Activate
Case "3P"
With Sheets(WS3)
.Activate
.PrintOut
End With
Case "PRINT"
Sheets(WS1).PrintOut
Sheets(WS2).PrintOut
Sheets(WS3).PrintOut
Case Else
MsgBox "La valeur en B1 n'est pas valable"
End Select
Exit Sub
ErrorHandler:
MsgBox "Une des Valeurs saisie de A1 à A3 n'est pas un nom de feuille"
End Sub
Que va-t'il se passer ? (ta ta ta!!! roulements de tambours !! lol)
Si tu as bien des nom de feuilles valides dans les cellules A1 à A3, la feuille (de 1 à 3) sera sélectionnée...
Maintenant si tu as mis "3P" en cellule "B1", la feuille en A3 sera imprimée... Et si tu as mis "Print" en en cellule "B1" les trois feuilles seront imprimées... (tu peux t'amuser à ajouter des tas de "Case", le plus dur sera de les retenir ou bien tout simplement de les mettre dans une Liste de Validation...)
Ce n'est pas vraiment une référence en simplicité de macro, c'est plutôt à prendre comme un exercice si tu débutes en VBA.
L'ideal pour ce genre de manipulation de feuilles c'est un UserForm, mais il faut d'abord que tu assimiles quelques bases.
Bon Après Midi
@+Thierry