VBA correspondance cellule

Edd93

XLDnaute Occasionnel
Bonjour, j'ai créé un userform et je n'arrive pas à faire marcher mon codage. J'aimerai, en saisissant un nom dans un textbox, faire apparaître son code à l'intermédiaire d'un bouton, mais ça ne marche pas, quelqu'un pour me débloquer ? thanks !

(Etant donné qu'il y aura trop de nom, je ne veux pas de combobox)

(En PJ une image comme ça vous comprenez parfaitement ce que je souhaite)
 

Pièces jointes

  • Pb.png
    Pb.png
    121.8 KB · Affichages: 37

Dranreb

XLDnaute Barbatruc
Bonjour.
Mettez une ComboBox au lieu de la TextBox.
Mais mettez sa propriété ShowDropButtonWhen à 0 pour encourager fortement le choix uniquement par frappe.
Notez qu'après avoir tapé quelques caractères, la liste pourra être affichée quand même, si besoin est, par touches Alt+flèche bas.
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Ne mettez pas de MsgBox, mais un Label dans l'UserForm
Dans la Sub UserForm_Initialize Affectez la Value de la plage en 1ère colonne à sa List.
Dans la Sub de l'évènement Change de la ComboBox utilisez son ListIndex pour trouver le décalage par rapport à la 1ère cellule de la seconde colonne. Affecté la Value de cette cellule au Caption du Label.
 

job75

XLDnaute Barbatruc
Bonjour Edd93, Bernard,

Apparemment on veut quelque chose de simple :
Code:
Private Sub CommandButton1_Click()
Dim c As Range
Set c = Sheets("Feuil2").Columns(1).Find(TextBox1, , xlValues, xlWhole)
If TextBox1 <> "" And Not c Is Nothing Then MsgBox c(1, 2)
End Sub
ou sans bouton :
Code:
Private Sub TextBox1_Change()
Dim c As Range
Set c = Sheets("Feuil2").Columns(1).Find(TextBox1, , xlValues, xlWhole)
If TextBox1 <> "" And Not c Is Nothing Then MsgBox c(1, 2)
End Sub
A+
 

Statistiques des forums

Discussions
314 203
Messages
2 107 177
Membres
109 766
dernier inscrit
pleutre