VBA : formulaire et correspondance
Résolu
chrisdemontigny
Messages postés
64
Date d'inscription
Statut
Membre
Dernière intervention
-
michel_m Messages postés 16602 Date d'inscription Statut Contributeur Dernière intervention -
michel_m Messages postés 16602 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
- Erreur 13 incompatibilité de type VBA excel ✓ - Forum Excel
- Mkdir vba ✓ - Forum VB / VBA
- Dépassement de capacité vba ✓ - 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