Excel vba comparer textbox et cellule

Résolu
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

3 réponses

  1. Contributeur
    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
    1. 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
    2. Contributeur
      Re le forum

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

      Mytå
      0
  2. Contributeur
    Bonjour,

    dans l'instruction if remplace le & par AND
    0
    1. 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
      1. 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