bonjour BrunoM45, 62pasqual,
la seule chose que je vois à améliorer, c'est utiliser un cstr(...) pour chaque feuille, dans le cas que le nom de la feuille est numérique (integer) mais je ne pas pas que c'est le cas ici. Et un "activate", cela est un "péché mortel" Il y aura 8 feuilles à imprimer, donc il se passe quelque chose inconnue.
Public Sub Imprimer()
Dim lig As Long
With Sheets("Whole Class")
For lig = 2 To .Cells(Rows.Count, 2).End(xlUp).Row
If .Cells(lig, 2).Value = 1 Then
'Sheets(CStr(.Cells(lig, 1).Value)).PrintOut ' envoi imprimante par défaut
Sheets(CStr(.Cells(lig, 1).Value)).PrintPreview ' affichage écran aperçu
End If
Next lig
End With
End Sub