bonjour,
* vos "If...Else...Endif" et "For...Next" sont utilisé mixte, cela est interdit, l'un doit rester dans l'autre.
* ce "If...Else...Endif", on l'écrit sur plusieurs lignes ou on l'écrit sur une ligne sans le endif, comme ceci, donc il faut s'habituer à cela
' méthode 1 (normal)
If cpt = 0 Then
zone 1
Else
zone 2
End If
'méthode 2 (plus court, moins lisible ???)
If cpt = 0 Then zone 1 Else zone 2
'methode 3 (plusieurs conditions à vérifier
If cpt = 0 Then
zone 1
ElseIf i = 2 Then
zone 2
ElseIf j = 3 Then
zone 3
End If
'méthode 4 avec select case
Select Case cpt
Case 1: MsgBox "1"
Case 2: MsgBox "2"
Case 3: MsgBox "3"
Case Else: MsgBox "else"
End Select
je ne sais pas ce que vous voulez faire avec le compteur. Ceci ?
cpt = 0
msg_impression.Show 0
For s = 4 To ThisWorkbook.Worksheets.Count
Worksheets(s).Select
Zone cpt + 1 'appeler cette macro avec le variable cpt+1
If cpt = 0 Then msg_impression.Repaint 'sauf la première boucle
cpt = cpt + 1 'incrementer cpt
Next
Unload msg_impression
C'est avec un Userform, sinon on peut utiliser un variable (public?) qu'on déclare en haut de la module. Tout dépend des circonstances.