Private Sub UserForm_Initialize()
Dim CaseACocher As MSForms.CheckBox
Dim Feuille As Worksheet
Dim Haut As Integer
Dim Gauche As Integer
Dim Ligne As Integer
Const Largeur As Integer = 70
Const Hauteur As Integer = 15
Const Espace As Integer = 6
With Me
.Width = 386
.Height = 180
With .CmdImprimer 'CommandButton1 à adapter
.Width = 60
.Height = 25
.Top = 130
.Left = 316
End With
End With
Haut = 6
Gauche = 6
For Each Feuille In Worksheets
Set CaseACocher = Controls.Add("Forms.CheckBox.1", "Chk" & Feuille.Name)
With CaseACocher
.Left = Gauche
.Top = Haut
.Width = Largeur
.Height = Hauteur
.Caption = Feuille.Name
End With
If Gauche = 310 Then
Gauche = 6
Haut = Haut + Hauteur + Espace
Else
Gauche = Gauche + Largeur + Espace
Haut = Haut
End If
Next Feuille
Set CaseACocher = Nothing
End Sub
Private Sub CmdImprimer_Click() 'adapter le nom du bouton
Dim Ctrl As Control
Dim I As Integer
For Each Ctrl In Me.Controls
If TypeName(Ctrl) = "CheckBox" Then
If Ctrl.Value = True Then
Worksheets(Ctrl.Caption).Select (0)
I = I + 1
End If
End If
Next
If I > 0 Then
Me.Hide
'ThisWorkbook.PrintPreview '<< pour aperçu avant impression
ThisWorkbook.PrintOut '<< pour imprimer
Unload Me
Else
MsgBox "Il faut faire une sélection !", vbOKOnly, "Imprimer."
End If
End Sub