Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim idx As Long
Dim lig As Long
Dim cbcp
If Not Intersect([I6], Target) Is Nothing And Target.Count = 1 Then
cbcp = Sheets("Divers Listes").Range("Code_Postal").Value
With Me.ComboBox1
.Clear
For lig = 1 To UBound(cbcp)
For idx = 0 To .ListCount - 1
If .List(idx) = cbcp(lig, 1) Then Exit For
Next idx
If idx > .ListCount - 1 Then .AddItem cbcp(lig, 1), idx
Next lig
.Visible = True
.Activate
End With
Else
Me.ComboBox1.Visible = False
End If
If Not Intersect([I7], Target) Is Nothing And Target.Count = 1 Then
With Me.ComboBox2
.Clear
cbcp = Sheets("Divers Listes").Range("Villes").Value
For lig = 1 To UBound(cbcp)
For idx = 0 To .ListCount - 1
If .List(idx) > cbcp(lig, 1) Then Exit For
If .List(idx) = cbcp(lig, 1) Then Exit For
Next idx
.AddItem cbcp(lig, 1), idx
Next lig
.Visible = True
.Activate
End With
Else
Me.ComboBox2.Visible = False
End If
End Sub
Private Sub ComboBox1_Change()
Dim lig As Long
Dim cbcp
Range("SaisieCB2") = ""
'If Len(ComboBox1.Value) < 5 Then Exit Sub
Range("SaisieCB1") = Me.ComboBox1
cbcp = Sheets("Divers Listes").Range("TableauListeVilles").Value
With Me.ComboBox2
.Clear
For lig = 1 To UBound(cbcp)
If Me.ComboBox1 = cbcp(lig, 1) Then .AddItem cbcp(lig, 2)
Next lig
.Visible = True
' .Activate
End With
End Sub
Private Sub ComboBox2_Change()
Dim Nom As String
Dim Ligne As Integer
Range("SaisieCB1") = ""
If Me.ComboBox2.ListIndex < 0 Then Exit Sub
Nom = Me.ComboBox2.Value
Ligne = Sheets("Divers Listes").Range("B:B").Find(Nom, , , xlPart).Row
Sheets("Formulaire de saisie").Range("SaisieCB1").Value = Sheets("Divers Listes").Cells(Ligne, 1).Value
Range("SaisieCB2") = Me.ComboBox2
End Sub
Sub RAZ()
Range("SaisieCB1") = ""
Range("SaisieCB2") = ""
End Sub