combobox dépendantes l'une de l'autre
Bonjour,
Je suis en train de créer un formulaire personnalisé avec des combobox en cascade. En faisant des recherches sur le net j'ai trouvé comment procéder mais il me reste un souci que je ne sais comment traiter.
La 1ère donnée est l'identification du client.
Je souhaiterais que l'utilisateur puisse soit choisir le nom du client dans une liste soit saisir directement son numéro s'il le connait par coeur (ce sera plus facile une fois que la liste sera longue). Quelle que soit la méthode utilisée je souhaite bien entendu voir simultanément les 2 données dont une sera utilisée pour définir la liste de ma 2ème combobox.
C'est là que je coince car si je dis que la saisie d'un numéro entraîne le positionnement de la liste sur le nom correspondant ou que le choix d'un nom dans la liste entraîne la mise à jour du numéro je risque de me retrouver dans une boucle infinie.
J'espère que vous voyez ce que je souhaite faire.
Si ça risque de donner une usine à gaz j'ai également envisagé de mettre un bouton OK sur lequel l'utilisateur devra cliquer s'il choisit de saisir le numéro du client.
Si quelqu'un pouvait me conseiller quant à la méthode vers laquelle m'orienter ce serait vraiment sympa.
Amicalement
1 pièce(s) jointe(s)
Combobox dépendant d'une autre et saisie automatique
Bonjour à tous,
J'essaie de mixer deux solutions que j'ai trouvé sur le forum pour avoir une combobox qui dépend d'une autre et garder la saisie automatique/dynamique que j'avais.
J'y arrive sur la première combobox1 mais pas sur la 2nde.
Pouvez-vous m'aider svp? C'est pour l'userform3.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| Dim A(), B()
Private Sub UserForm_Initialize()
Set Ws = Sheets("feuil1")
With Me.ComboBox3
For J = 2 To Ws.Range("B" & Rows.Count).End(xlUp).Row
.AddItem Ws.Range("B" & J)
Next J
End With
Set F = Sheets("prix de cotation")
A = Application.Transpose(F.Range("P2:P" & F.[P65000].End(xlUp).Row).Value)
Me.ComboBox1.List = A
End Sub
Private Sub ComboBox1_Change()
Set F = Sheets("prix de cotation")
A = Application.Transpose(F.Range("P2:P" & F.[P65000].End(xlUp).Row).Value)
Me.ComboBox1.List = A
If Me.ComboBox1.ListIndex = -1 Then
Me.ComboBox1.List = Filter(A, Me.ComboBox1.Text, True, vbTextCompare)
Me.ComboBox1.DropDown
End If
With Worksheets("prix de cotation")
If ComboBox1.ListIndex >= 0 Then
ComboBox2.ListIndex = -1
.Range("Q1") = ComboBox1.Value
ComboBox2.RowSource = "Article"
Else
ComboBox2.ListIndex = -1
ComboBox2.RowSource = ""
.Range("Q1").ClearContents
End If
End With
End Sub |
Merci à vous !