Userform recherchev

nherambo

XLDnaute Nouveau
Bonjour, j'ai besoin de votre aide.

Je n'arrive pas à faire une recherchev dans mon userform. Ayant plusieurs fois le même nombre, je voudrais dans le UserForm, entrer manuellement le "Number". A la suite de cela, la liste déroulante "Correspondance" me donnerait uniquement les correspondances correspondantes. Je n'ai donc plus qu'à choisir la correspondance que je veux pour avoir l'équivalent dans la combobox "Equivalent".


Plus clairement, si je saisis le number 4, je voudrais que dans ma combobox "Correspondance", j'ai le choix entre E, F, ou G. En sélectionnant G, je verrais apparaitre automatiquement "x19" dans la Combobox "Equivalent".

Merci par avance pour votre aide précieuse !

Nherambo
 

Pièces jointes

  • Book2.xlsx
    11.9 KB · Affichages: 61
  • Book2.xlsx
    11.9 KB · Affichages: 69
  • Book2.xlsx
    11.9 KB · Affichages: 68

nherambo

XLDnaute Nouveau
Re : Userform recherchev

Par contre pour le coup je bloque vraiment pour renvoyer la valeur "equivalent". J'ai du mal avec la fonction "VLookup" avec deux critères Combobox sous VBA
 

Pièces jointes

  • Copy of Nherambo_fhoest.xlsm
    30.9 KB · Affichages: 55
  • Copy of Nherambo_fhoest.xlsm
    30.9 KB · Affichages: 64
  • Copy of Nherambo_fhoest.xlsm
    30.9 KB · Affichages: 60

fhoest

XLDnaute Accro
Re : Userform recherchev

Bonjour,
voici le code adapté a ce que tu cherches:
Code:
Private Sub correspondance_Enter()
Call tri_combo_2
End Sub

Private Sub equivalence_Enter()
Call tri_combo_3
End Sub

Private Sub Number_Change()
Maligne = Sheets("Sheet1").Range("A3000").End(xlUp).Row + 1
Sheets("Sheet1").Range("A" & Maligne) = Me.number
End Sub
Private Sub UserForm_Initialize()
Call tri_combo_1
End Sub
Sub tri_combo_1()
Application.ScreenUpdating = False
With Sheets("Sheet1")
drligne = .[A:B].Find("*", , , , 1, 2).Row
Set dico = CreateObject("Scripting.Dictionary")
For Each c In .Range("a2:a" & drligne)
If Not dico.exists(c.Value) And c.Value <> "" Then dico.Add c.Value, c.Value
Next c
End With
a = dico.Keys
With UserForm1
For K = 0 To dico.Count - 1
.number.AddItem a(K)
Next
End With
Application.ScreenUpdating = True
End Sub
Sub tri_combo_2()
UserForm1.correspondance.Clear
With Sheets("Sheet1")
drligne = .[A:C].Find("*", , , , 1, 2).Row
Set dico = CreateObject("Scripting.Dictionary")
For Each c In .Range("C2:C" & drligne)
If Sheets("Sheet1").Cells(c.Row, "A").Text = UserForm1.number.Text Then
If Not dico.exists(c.Value) And c.Value <> "" Then dico.Add c.Value, c.Value
End If
Next c
End With
a = dico.Keys
With UserForm1
For K = 0 To dico.Count - 1
.correspondance.AddItem a(K)
Next
End With
Set dico = Nothing
End Sub
Sub tri_combo_3()
UserForm1.equivalence.Clear
With Sheets("Sheet1")
drligne = .[A:C].Find("*", , , , 1, 2).Row
Set dico = CreateObject("Scripting.Dictionary")
For Each c In .Range("B2:B" & drligne)
If Sheets("Sheet1").Cells(c.Row, "C").Text = UserForm1.correspondance.Text Then
If Not dico.exists(c.Value) And c.Value <> "" Then dico.Add c.Value, c.Value
End If
Next c
End With
a = dico.Keys
With UserForm1
For K = 0 To dico.Count - 1
.equivalence.AddItem a(K)
Next
End With
Set dico = Nothing
End Sub
pour le classeur que tu as mis en copy
j'utilise rarement Vlookup
A+
 

fhoest

XLDnaute Accro
Re : Userform recherchev

Bonsoir,

Normal que tu as une erreur si tu remplaces uniquement la combobox par un textbox.
Pour ajouter une valeur a une combobox tu dois utiliser soit une méthode ajout d'item (additem) ou rowsource etc..
lorsque tu utilise un textbox tu dois mettre textbox.text ou textbox.value.
ce sont des propriétés du control
Essai et dis moi si tu y arrives.
A+
 

nherambo

XLDnaute Nouveau
Re : Userform recherchev

C'est bon j'y suis arrivé. Merci pour tes conseils. J'ai un nouveau problème sur lequel je bloque.

J'ai repris le même modèle en modifiant les données dans les feuilles. Sauf que je n'arrive pas à faire la même chose que précédemment sur plusieurs feuilles. Sur la Feuille1, les nombres sont uniques.

Je voudrais rechercher le nombre entré dans "Number" dans la feuille2 pour renvoyer dans la combobox correspondance, les différentes correspondances possibles pour ce numéro. Sauf que je bloque étant donné que c'est sur deux feuilles et ma combobox reste désespéremment vide.

Tu arriveras sans doute à expliquer mon erreur. Merci
 

Pièces jointes

  • Copy of Nherambo_fhoest.xlsm
    28.7 KB · Affichages: 48
  • Copy of Nherambo_fhoest.xlsm
    28.7 KB · Affichages: 53
  • Copy of Nherambo_fhoest.xlsm
    28.7 KB · Affichages: 53

Statistiques des forums

Discussions
312 508
Messages
2 089 138
Membres
104 047
dernier inscrit
bravetta