Re,
Dans ce cas, je te conseille de sélectionner d'abord la plage à imprimer et cliquer sur les boutons de commande après pour imprimer. Les codes sont les suivants :
Private Sub CommandButton1_Click()
For Each S In ActiveSheet.Shapes
S.ControlFormat.PrintObject = False
Next S
ActiveSheet.PageSetup.PrintArea = Selection.Address
Application.Dialogs(xlDialogPrint).Show
End Sub
Private Sub CommandButton2_Click()
For Each S In ActiveSheet.Shapes
S.ControlFormat.PrintObject = True
Next S
ActiveSheet.PageSetup.PrintArea = Selection.Address
Application.Dialogs(xlDialogPrint).Show
End Sub
On peut aussi fixer en dur la zone d'impression (c'est un exemple à adapter selon besoin) comme ça :
ActiveSheet.PageSetup.PrintArea = "$A$1:$AI$15"
Dans ce cas, on n'a pas besoin de sélectionner la plage à imprimer. Tu as le choix maintenant.