Excel vba comparer textbox et cellule
Résolu
Beeloobop
Messages postés
71
Statut
Membre
-
Mytå Messages postés 4246 Statut Contributeur -
Mytå Messages postés 4246 Statut Contributeur -
Bonjour,
J'ai un soucis dans un de mes codes dans un userform.
Le but est de retrouver la feuille correspondant au nom que l'utilisateur entre dans 2 textbox (nom et prenom). Lorsqu'elles sont créées les feuilles prennent pour nom les 2 1ere lettres du nom et du prenom et un nombre.Les deux valeurs d'identité sont mises dans les cellules A3 et b3 de cette feuille.
Le code ci-dessous regarde pour chaque feuille si les valeurs des cellules A3 et B3 correspondent aux entrées de l'utilisateur. Si oui il poursuivra sur cette feuille, sinon il en créera une autre (suite du code). Mais c'est là que ça pose problème : Il me crée toujours de nouvelle feuille sans jamais trouver de correspondance.
Je dois avoir une problème de syntaxe au niveau du If (ou autre problème?). Voici le code en question:
Dim sh As Worksheet
For Each sh In Worksheets
If Nombox.Text = Cells(3, 1).Value & Prenombox.Text = Cells(3, 2).Value Then
sh.Select
MsgBox ("Bonjour " & Prenombox & " " & Nombox & ", vous pouvez continuer à rentrer vos données. ")
Application.ScreenUpdating = True
Unload UserForm1
Load UserForm2
UserForm2.Show
Exit Sub
End If
Next sh
Merci à vous!!
Beeloobop
J'ai un soucis dans un de mes codes dans un userform.
Le but est de retrouver la feuille correspondant au nom que l'utilisateur entre dans 2 textbox (nom et prenom). Lorsqu'elles sont créées les feuilles prennent pour nom les 2 1ere lettres du nom et du prenom et un nombre.Les deux valeurs d'identité sont mises dans les cellules A3 et b3 de cette feuille.
Le code ci-dessous regarde pour chaque feuille si les valeurs des cellules A3 et B3 correspondent aux entrées de l'utilisateur. Si oui il poursuivra sur cette feuille, sinon il en créera une autre (suite du code). Mais c'est là que ça pose problème : Il me crée toujours de nouvelle feuille sans jamais trouver de correspondance.
Je dois avoir une problème de syntaxe au niveau du If (ou autre problème?). Voici le code en question:
Dim sh As Worksheet
For Each sh In Worksheets
If Nombox.Text = Cells(3, 1).Value & Prenombox.Text = Cells(3, 2).Value Then
sh.Select
MsgBox ("Bonjour " & Prenombox & " " & Nombox & ", vous pouvez continuer à rentrer vos données. ")
Application.ScreenUpdating = True
Unload UserForm1
Load UserForm2
UserForm2.Show
Exit Sub
End If
Next sh
Merci à vous!!
Beeloobop
A voir également:
- Excel vba comparer textbox et cellule
- Word et excel gratuit - Guide
- Excel cellule couleur si condition texte - Guide
- Liste déroulante excel - Guide
- Excel compter cellule couleur sans vba - Guide
- Proteger cellule excel - Guide
3 réponses
Salut le forum
Il faudrait que VBA est au moins le nom de la feuille
Pour faire propre ajoute le nom de la feuille (sh)
Mytå
Il faudrait que VBA est au moins le nom de la feuille
Pour faire propre ajoute le nom de la feuille (sh)
For Each sh In Worksheets If CStr(sh.Cells(2, 1).Value) = Nomcombobox.Text Then sh.select 'Suite du code
Mytå
Bonjour!
Merci pour ta réponse. Je conclue de ta réponse que le problème ne se trouve pas dans les .text ou .Value?
J'ai légèrement modifié le code en ceci (du coup plus de problème avec du & ou AND) :
If Nomcombobox.Text = Cells(2, 1).Value Then
Mais ça ne marche toujours pas :/ Aurais-tu une idée?
Merci pour ta réponse. Je conclue de ta réponse que le problème ne se trouve pas dans les .text ou .Value?
J'ai légèrement modifié le code en ceci (du coup plus de problème avec du & ou AND) :
If Nomcombobox.Text = Cells(2, 1).Value Then
Mais ça ne marche toujours pas :/ Aurais-tu une idée?
En fait je crois avoir compris :
For Each sh In Worksheets
sh.Select
If CStr(Cells(2, 1).Value) = Nomcombobox.Text Then
MsgBox ("Bonjour " & Nomcombobox & ", vous pouvez continuer à rentrer vos données. ")
Application.ScreenUpdating = True
Unload UserForm1
Load UserForm2
UserForm2.Show
Exit Sub
End If
Next sh
Le If ne fonctionne pas car il ne se positionne pas sur la feuille en cours de test. et le code sh.Select ne fonctionne pas non plus.
Une idée de code qui me permettrait de me positionner sur la feuille en cours de test dans la boucle for each?
For Each sh In Worksheets
sh.Select
If CStr(Cells(2, 1).Value) = Nomcombobox.Text Then
MsgBox ("Bonjour " & Nomcombobox & ", vous pouvez continuer à rentrer vos données. ")
Application.ScreenUpdating = True
Unload UserForm1
Load UserForm2
UserForm2.Show
Exit Sub
End If
Next sh
Le If ne fonctionne pas car il ne se positionne pas sur la feuille en cours de test. et le code sh.Select ne fonctionne pas non plus.
Une idée de code qui me permettrait de me positionner sur la feuille en cours de test dans la boucle for each?
ça marche comme il faut! Encore une fois tu me fais gagner un temps précieux! :)
Merci beaucoup!
Pour le å c'est un raccourci clavier ALT+134 (Sur le pavé numérique)
Mytå