UserForm ne marche pas
Résolu
Kuartz
Messages postés
852
Date d'inscription
Statut
Membre
Dernière intervention
-
Kuartz Messages postés 852 Date d'inscription Statut Membre Dernière intervention -
Kuartz Messages postés 852 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
En voulant répondre à un message du forum, je me suis confronté à un problème que j'avoue ne pas bien comprendre.
Mon code sur le UserForm :
Mon code sur un module :
Le code s'exécute mais même si j'ai une date par exemple 01/01/2015 en A2, avec le mot BONJOUR, je fais la recherche et le compteur m'indique 0 au lieu de 1...
Une idée?
Cordialement.
En voulant répondre à un message du forum, je me suis confronté à un problème que j'avoue ne pas bien comprendre.
Mon code sur le UserForm :
Public Sub CommandButton1_Click()
MOIS_BOX = ComboBox1.Value
Application.Run ("Code")
Unload Me
End Sub
Private Sub UserForm_Initialize()
With Me.ComboBox1
.AddItem "01"
.AddItem "02"
.AddItem "03"
.AddItem "04"
.AddItem "05"
.AddItem "06"
.AddItem "07"
.AddItem "08"
.AddItem "09"
.AddItem "10"
.AddItem "11"
.AddItem "12"
End With
End Sub
Mon code sur un module :
Public MOIS_BOX As String
Sub LANCER()
UserForm1.Show
End Sub
Sub Code()
Dim DL As Long
Dim MOT As String
Dim COMPTEUR As Long
Dim MOIS As String
DL = Cells(Application.Rows.Count, 1).End(xlUp).Row
MOT = InputBox("Entrez le mot recherché")
MOIS = MOIS_BOX
For i = 2 To DL 'Changer le 2 pour la ligne où commencent les données
If CStr(Month(CDate(Range("A" & i).Value))) = MOIS Then
If CStr(Range("B" & i).Value) = MOT Then
COMPTEUR = COMPTEUR + 1
End If
End If
Next i
MsgBox (COMPTEUR)
End Sub
Le code s'exécute mais même si j'ai une date par exemple 01/01/2015 en A2, avec le mot BONJOUR, je fais la recherche et le compteur m'indique 0 au lieu de 1...
Une idée?
Cordialement.
1 réponse
-
Bonjour,
Call Code
suffi, pas besoin deApplication.Run ("Code")
le mois de la cellule sur deux caracteres:Sub Code() Dim DL As Long Dim MOT As String Dim COMPTEUR As Long Dim MOIS As String DL = Cells(Application.Rows.Count, 1).End(xlUp).Row MOT = InputBox("Entrez le mot recherché") MOIS = MOIS_BOX For i = 2 To DL 'Changer le 2 pour la ligne où commencent les données If CStr(Format(Month(CDate(Range("A" & i).Value)), "00")) = MOIS And CStr(Range("B" & i).Value) = MOT Then COMPTEUR = COMPTEUR + 1 End If Next i MsgBox (COMPTEUR) End Sub
Pour tester un code, posez des points d'arrets et quand le programme s'arrete, passez le curseur souris sur les variables et/ou objets pour voir leurs contenus-
-
Ah juste une chose, je n'arrive pas à maîtriser le système de débugage du VBA excel. Vous dites donc qu'en fait il faut poser des points d'arrêt? Ensuite on lance la macro et elle s'arrête sur le point? Si je passe ma souris sur la variable, excel me dira alors ce qu'elle contient?
Merci pour votre réponse.
Cordialement. -
-