VBA : formulaire et correspondance
Résolu
chrisdemontigny
Messages postés
70
Statut
Membre
-
michel_m Messages postés 18903 Date d'inscription Statut Contributeur Dernière intervention -
michel_m Messages postés 18903 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
j'ai des nombres qui se suivent dans la colonne A. J'ai créé un userform très simple avec une zone de texte pour vérifier si la valeur indiquée dans le formulaire se trouve dans la colonne de nombres.
Si c'est le cas, un message doit s'afficher et la valeur de la zone de texte du formulaire doit se mettre à 0... sauf que cela ne fonctionne pas: il ne se passe rien
J'ai joint le code ci-dessous.
Private Sub CommandButton1_Click()
Dim lg1 As Long, lg2 As Long
lg1 = 1
lg2 = Sheet1.Cells(lg1, 1).End(xlDown).Row
While lg1 <= lg2
lg1 = lg1 + 1
If Sheet1.Cells(lg1, 1).Value = UserForm1.TextBox1.Value Then
MsgBox "c'est super!"
UserForm1.TextBox1.Value = 0
End If
Wend
End Sub
Je suis un peu désespéré de ne toujours pas savoir écrire un code sans demander d'assistance.
Merci pour votre aide.
Cordialement.
j'ai des nombres qui se suivent dans la colonne A. J'ai créé un userform très simple avec une zone de texte pour vérifier si la valeur indiquée dans le formulaire se trouve dans la colonne de nombres.
Si c'est le cas, un message doit s'afficher et la valeur de la zone de texte du formulaire doit se mettre à 0... sauf que cela ne fonctionne pas: il ne se passe rien
J'ai joint le code ci-dessous.
Private Sub CommandButton1_Click()
Dim lg1 As Long, lg2 As Long
lg1 = 1
lg2 = Sheet1.Cells(lg1, 1).End(xlDown).Row
While lg1 <= lg2
lg1 = lg1 + 1
If Sheet1.Cells(lg1, 1).Value = UserForm1.TextBox1.Value Then
MsgBox "c'est super!"
UserForm1.TextBox1.Value = 0
End If
Wend
End Sub
Je suis un peu désespéré de ne toujours pas savoir écrire un code sans demander d'assistance.
Merci pour votre aide.
Cordialement.
A voir également:
- VBA : formulaire et correspondance
- Excel compter cellule couleur sans vba - Guide
- Incompatibilité de type vba ✓ - Forum VB / VBA
- Vba ouvrir un fichier excel avec chemin ✓ - Forum VB / VBA
- Vba récupérer valeur cellule ✓ - Forum VB / VBA
- Erreur 13 incompatibilité de type VBA excel ✓ - Forum Excel
4 réponses
Bonsoir chrisdemontigny,
Essaie ceci:
Essaie ceci:
Private Sub CommandButton1_Click()
Dim lg1 As Long, lg2 As Long
'
lg1 = 1
lg2 = Worksheets("F1").Cells(lg1, 1).End(xlDown).Row
MsgBox ("lg2: " & lg2)
While lg1 <= lg2
lg1 = lg1 + 1
If Worksheets("F1").Cells(lg1, 1).Value = Int(Val(UserForm1.TextBox1.Value)) Then
MsgBox "c'est super!"
UserForm1.TextBox1.Value = 0
End If
Wend
EndSub
Merci Heliotte,
je vois que le changement de type de données sur le formulaire a arrangé la chose.
Peux-tu m'expliquer pourquoi?
Encore merci
je vois que le changement de type de données sur le formulaire a arrangé la chose.
Peux-tu m'expliquer pourquoi?
Encore merci
Bonsoir chrisdemontigny,
Excuse-moi si j'ai changé un type de données .. c'est une erreur de ma part .. mais je pense n'avoir changé que "Worksheets("F1")" à la place de "Sheet1".
Pour un accès à une cellule, groupe de cellules, 'Range', il est préférable d'appeler la feuille .. Worksheets("F1") .. "F1" est le nom de la feuille .. tu peux évidemment changé le nom !
Autre chose, si la colonne, dont tu souhaite trouvé la dernière ligne, ne contient aucune donnée .. ton code va râler, car 'lg1' va dépasser 'lg2' !!
Excuse-moi si j'ai changé un type de données .. c'est une erreur de ma part .. mais je pense n'avoir changé que "Worksheets("F1")" à la place de "Sheet1".
Pour un accès à une cellule, groupe de cellules, 'Range', il est préférable d'appeler la feuille .. Worksheets("F1") .. "F1" est le nom de la feuille .. tu peux évidemment changé le nom !
Autre chose, si la colonne, dont tu souhaite trouvé la dernière ligne, ne contient aucune donnée .. ton code va râler, car 'lg1' va dépasser 'lg2' !!
Bonjour,
une zone de texte (textbox) renvoie... du texte
dans ta cellule, tu as un nombre,
le test renvoie donc FAUX
tu peux écrire
If Cells(lg1, 1)= TextBox1*1 Then MsgBox "gagné"
remarque=
la fonction VAL ne prend que la partie entière du nombre et int(val.... est inutile (on cherche la partie entière d'un nombre entier)
tu peux tester cette petite maquette vite faite (un textbox et un bouton)
une zone de texte (textbox) renvoie... du texte
dans ta cellule, tu as un nombre,
le test renvoie donc FAUX
tu peux écrire
If Cells(lg1, 1)= TextBox1*1 Then MsgBox "gagné"
remarque=
la fonction VAL ne prend que la partie entière du nombre et int(val.... est inutile (on cherche la partie entière d'un nombre entier)
tu peux tester cette petite maquette vite faite (un textbox et un bouton)
Private Sub CommandButton1_Click()
xxx = Val(TextBox1)
MsgBox xxx
If Range("B3") = TextBox1 * 1 Then MsgBox "gagné"
Unload Me
End Sub
Private Sub UserForm_Initialize()
TextBox1 = 12.37
End Sub