Excel vba comparer textbox et cellule

Résolu/Fermé
Beeloobop Messages postés 63 Date d'inscription jeudi 11 février 2010 Statut Membre Dernière intervention 4 décembre 2010 - 20 août 2010 à 12:05
Mytå Messages postés 2973 Date d'inscription mardi 20 janvier 2009 Statut Contributeur Dernière intervention 20 décembre 2016 - 20 août 2010 à 17:05
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
A voir également:

3 réponses

Mytå Messages postés 2973 Date d'inscription mardi 20 janvier 2009 Statut Contributeur Dernière intervention 20 décembre 2016 949
20 août 2010 à 16:47
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)

For Each sh In Worksheets 
If CStr(sh.Cells(2, 1).Value) = Nomcombobox.Text Then 
sh.select
'Suite du code


Mytå
1
Beeloobop Messages postés 63 Date d'inscription jeudi 11 février 2010 Statut Membre Dernière intervention 4 décembre 2010 11
20 août 2010 à 16:57
Bonjour Myta° (tiens comment on fait pour mettre le petit rond sur le a? c'est un caractère spécial?)

ça marche comme il faut! Encore une fois tu me fais gagner un temps précieux! :)

Merci beaucoup!
0
Mytå Messages postés 2973 Date d'inscription mardi 20 janvier 2009 Statut Contributeur Dernière intervention 20 décembre 2016 949
20 août 2010 à 17:05
Re le forum

Pour le å c'est un raccourci clavier ALT+134 (Sur le pavé numérique)

Mytå
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
20 août 2010 à 12:22
Bonjour,

dans l'instruction if remplace le & par AND
0
Beeloobop Messages postés 63 Date d'inscription jeudi 11 février 2010 Statut Membre Dernière intervention 4 décembre 2010 11
20 août 2010 à 14:47
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?
0
Beeloobop Messages postés 63 Date d'inscription jeudi 11 février 2010 Statut Membre Dernière intervention 4 décembre 2010 11
20 août 2010 à 16:10
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?
0