XL 2016 liste combobox suivant résultat textbox

Mimi

XLDnaute Occasionnel
Bonjour à tout le forum,
Dans mon userform le premier combobox choisi le département, le textbox est le résultat de la combobox1, la combobox2 sert à lister le résultat de la textbox.
Les deux premier j'y suis arrivé, et la combobox2 ne me donne rien, je sais pas pourquoi ??
D'avance merci
Mimi
 

Pièces jointes

  • Essai combobox.xlsm
    38.9 KB · Affichages: 8

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour @Mimi :),
Votre procédure:
VB:
Private Sub TextBox1_Change()
With Sheets("Base")

If TextBox1.Value = "Côte-d'Or" Then
ComboBox1.RowSource = .Range("E2:E700").Address
End If

If TextBox1.Value = "Saône-et-Loire" Then
ComboBox1.RowSource = .Range("G2:G700").Address
End If

End With
End Sub

Il me semble :eek: que vous définissez la propriété RowSource de Combobox et non Combobox2...

Pour le fun, on peut raccourcir la procédure:
VB:
Private Sub TextBox1_Change()
  If ComboBox1.ListIndex > -1 Then ComboBox2.RowSource = Range(Choose(1 + ComboBox1.ListIndex, "Cote", "Saone")).Address Else ComboBox2.RowSource = Empty
End Sub
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Bonjour le fil, mimi, mapomme

Histoire de varier les plaisirs, (et accesoirement pour attendre que mon thé dominical finisse d'infuser ;)
Ci dessous deux variantes d'écriture
Variante 1
VB:
Private Sub TextBox1_Change()
Dim cb1$
cb1 = TextBox1.Value
With Sheets("Base")
ComboBox2.RowSource = .Range(Switch(cb1 = .[I2], "E2:E700", cb1 = .[I3], "G2:G700")).Address
End With
End Sub
Variante 2
VB:
Private Sub TextBox1_Change()
Dim f As Worksheet, cb1$, c&
Set f = Sheets("Base"): cb1 = TextBox1.Value
c = (0 * (cb1 = f.[I2])) + (-2 * (cb1 = f.[I3]))
ComboBox2.RowSource = f.Range("E2:E700").Offset(, c).Address
End Sub

PS: Ma préférence va à la seconde
(Mais on s'en tape, mon petit bonhomme ;))

Oui, je sais il n'est jamais bon de parler de soi à la 3ième personne. ;)
 

Discussions similaires

Réponses
10
Affichages
371

Statistiques des forums

Discussions
312 101
Messages
2 085 300
Membres
102 857
dernier inscrit
Nony1931