Remplir un intitulé un fonction de 2 ComboBox
Bonjour tous le monde!
Alors voilà, j'ai une Useform1 avec 2 ComboBox.
En fonction du contenu de la première, le contenu de la deuxième évolue.
La première ComboBox récupère ses données en feuille "Bibliothèque" Colonne B
La deuxième ComboBox récupère ses données en feuille "Bibliothèque" Colonne C
Juste en dessous, j'ai un intitulé (Label3).
J'aimerais que le contenu de cette intitulé soit fonction des 2 premières ComboBox (récupèrer les données en feuille "Bibliothèque" Colonne D). Et que le contenu soit mis à jour instantanément en fonction des sélections des ComboBox (et de préférence sans cliquer sur l'intitulé).
Ma première idée, qui s'avère ne pas mettre à jour l'intitulé, a été de lier 2 cellules à mes combobox.
Code:
1 2 3 4 5
|
Sheets("Résultats").Select
Range("B9") = ComboBox1.Value
Range("C9") = ComboBox2.Value |
Puis d'entrer dans une cellule annexe (B2) la formule
Code:
1 2
|
{=INDEX(Bibliothèque!D$1:D$500;EQUIV(1;(Bibliothèque!$B$1:$B$500='Résultats'!$B9)*(Bibliothèque!$C$1:$C$500='Résultats'!$C9);0))} |
Ca marche!
Puis entrer comme Caption de mon intiltulé Label3 la cellule qui contient la formule précédente.
Code:
1 2 3 4 5 6 7 8
|
Private Sub Label3_Click()
With Sheets("Résultat")
Label3.Caption = .Range("B2")
End With
End Sub |
Tous ça fonctionne, mais le hic:
- Il faut fermer la Userform1 pour que les case liées au ComboBox se remplissent.
- Il faut réouvrir la UserForm et cliquer sur l'intitulé pour qu'il se mette à jour.
Est-il possible de simplifier cette procédure en supprimant les cellules liées aux Combobox?
Intégrer la formule =Index en code VBA ou bien faire autrement?
Merci d'avance pour vos idées :D ++