Excel vba comparer textbox et cellule

Résolu
Beeloobop Messages postés 71 Statut Membre -  
Mytå Messages postés 4246 Date d'inscription   Statut Contributeur Dernière intervention   -
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. Mytå Messages postés 4246 Date d'inscription   Statut Contributeur Dernière intervention   957
     
    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. Beeloobop Messages postés 71 Statut Membre 11
       
      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. Mytå Messages postés 4246 Date d'inscription   Statut Contributeur Dernière intervention   957
       
      Re le forum

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

      Mytå
      0
  2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour,

    dans l'instruction if remplace le & par AND
    0
  3. Beeloobop Messages postés 71 Statut Membre 11
     
    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. Beeloobop Messages postés 71 Statut Membre 11
       
      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