Bonjour,
J'ai besoin d'aide dans un schéma très simple dans un formulaire. Ce que je dois faire est de configurer 2 listes déroulantes, la première montre les pays et la seconde montre les villes des pays au-dessus. (Je veux que les villes s'affichent correctement lorsque je sélectionne le pays ci-dessus)
Je n'ai que 2 pays, que j'ai pu facilement situer avec "row source", mais j'ai du mal à faire apparaître la liste déroulante des villes. J'ai essayé 3 façons différentes mais ça ne marche pas.
<pre>
Dim colonne As Integer
Dim i As Integer, j As Integer
Private Sub Userform_initialize()
colonne = 2
Sheets("L1").Range("B2:C2").Interior.ColorIndex = Clear
Do While Sheets("L1").Cells(2, colonne).Value <> ""
Userform.cboCountry.AddItem Cells(2, colonne).Value
colonne = colonne + 1
Loop
End Sub
Private Sub cboCountry_Change()
i = 2
Userform.cboCity.Clear
Sheets("L1").Range("B2:C2").Interior.ColorIndex = Clear
Do While Sheets("L1").Cells(2, colonne).Value <> ""
If Cells(2, i).Value = cboCountry.Value Then
Cells(2, i).Select
ActiveCell.Interior.ColorIndex = 32
colonne = ActiveCell.Column
End If
i = i + 1
Loop
j = 3
Do While Cells(j, colonne).Value <> ""
Userform.cboCity.AddItem Cells(j, colonne)
j = j + 1
Loop
cboCity.ListIndex = 0
End Sub
</pre>
<pre>
Dim colonne As Integer
Dim i As Integer, j As Integer
Private Sub Userform_initialize()
colonne = 2
Sheets("L0").Range("B2:C2").Interior.ColorIndex = Clear
Do While Sheets("L1").Cells(2, colonne).Value <> ""
Userform.cboCountry.AddItem Cells(2, colonne).Value
colonne = colonne + 1
Loop
End Sub
Private Sub cboMarque_Change()
With L0
Col = .Rows(2).Cells.Find(cboCountry.Value, LookAt:=xlWhole).Column
cboCity.Clear
cboCity.List = .Range(.Cells(3, Col), .Cells(.Cells(Rows.Count, Col).End(xlUp).Row, Col)).Value
End With
End Sub
</pre>
<pre>
Private Sub UserForm_Initialize()
With cboCountry
.AddItem "Canada"
.AddItem "USA”
End With
End Sub
Private Sub cboCity_Change()
Dim index As Integer
index = cboCity.ListIndex
cboCity.Clear
Select Case index
Case Is = Canada
With cboCity
.AddItem "Toronto"
.AddItem "Ottawa"
.AddItem "Montreal"
.AddItem "Vancouver"
End With
Case Is = USA
With cboCity
.AddItem "Boston"
.AddItem "Miami"
.AddItem "Akron"
.AddItem "Houston”
End With
End Select
End Sub
</pre>
Svp dites-moi quel code est le plus simple (ou le plus fiable) et que dois-je modifier pour que ca marche. (L0 est les sources de ligne du tableau des pays et L1 est juste une feuille avec chaque pays avec ses villes ci-dessous)
Si vous avez des idées plus simples, n'hésitez pas. Merci d'avance</p>