Bonjour,

J'utilise une variable publique (nb) pour passer un nombre dans un UserForm, qui revient dans une boucle, mais ce dernier n'affiche pas le bon nombre (i). En général, il affiche le nombre précédent, voir le nombre attribué lors de la dernière exécution, alors que la variable est initialisée au début...

L'extrait de macro:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Public nb As Long
Public txt As String
 
Sub test
 
    nb = 0
 
For i = 3 to 100
 
    Application.Goto Range("B" & i), True
 
    nb = i
    UF_OuiNonAnnuler.Show False
    While UF_OuiNonAnnuler.Visible
        DoEvents
    Wend
 
    Select Case txt
    Case "Oui": GoTo LigneSuivante
    Case "Annuler": Exit Sub
    End Select
 
    'ici code exécuté si on clique sur "Non"
 
LigneSuivante:
 
Next
 
End Sub
Le code du UserForm:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Private Sub UserForm_Initialize()
 
    TextBox1.Value = nb
 
End Sub
 
Private Sub CommandButton1_Click()
 
    txt = "Oui"
 
    Unload Me
 
End Sub
 
Private Sub CommandButton2_Click()
 
    Unload Me
 
End Sub
 
Private Sub CommandButton3_Click()
 
    txt = "Annuler"
 
    Unload Me
 
End Sub
Toute aide est bienvenue.

Cordialement