1 pièce(s) jointe(s)
Aide pour une macro qui donne un résultat inattendu
J'ai écrit une macro ultra-simple pour accompagner mon apprentissage de débutant.
Elle balaye un tableau comportant une simple colonne de mots et affiche la mot lu dans la 1re boîte de texte (la 2e boîte est pour l'instant inutilisée) d'un formulaire qui comporte aussi 2 boutons de commande pour "continue"r ou "arrêter"; à la fin du balayage ou bien si le bouton "arrêter" a été actionné, la macro affiche le nombre de mots traités.
Je ne comprends pas pourquoi, lorsque je lance la macro, seul le dernier mot du tableau s'affiche immédiatement et aucun bouton ne produit d'effet lorsqu'on l'actionne.
Voici le code :
Code:
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 30 31 32 33 34 35 36 37 38 39 40 41
| Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 21/03/2023 par Gérard
'
' Déclaration des variables
Dim Question, Bilan As String
Dim i, Compteur As Integer
'
' Affichage du formulaire en modal
UserForm1.Show 0
Compteur = 0
' Boucle
For i = 2 To Cells(Rows.Count, "A").End(xlUp).Row
Question = Cells(i, 1).Value
UserForm1.TextBox1 = Question
If UserForm1.Tag = "Arreter" Then
Exit For
End If
Compteur = Compteur + 1
Next i
' Fin
Bilan = CStr(Compteur) & " mots ont été traités"
UserForm1.TextBox3 = Bilan
'
End Sub
'
'
'
Private Sub UserForm_Initialize()
Me.StartUpPosition = 2
i = 0
End Sub
Private Sub CommandButton1_Click()
Me.Tag = "Continuer"
End Sub
Private Sub CommandButton2_Click()
Me.Tag = "Arreter"
End Sub] |
Je joins également le fichier que j'ai créé sous Excel 2003.
Je remercie par avance qui voudra bient éclairer ma lanterne.