Lien entre Combobox Code postal et Combobox Ville ne se fait pas

fb62840

XLDnaute Impliqué
Bonjour à toutes et tous,

Je sollicite votre aide à nouveau car j'essaie d'adapter un code qu'un dénommé Robert m'avait sympathiquement proposé il y a quelque temps.

Le tout est assez basique :
Sur une feuille Source j'ai en colonne B des codes postaux et en colonne C le nom des villes correspondantes
Certaines villes partagent le même code postal.

J'ai un formulaire avec 2 combobox
Combobox1 (liste déroulante pour le choix d'un code postal)
Combobox 2 (liste déroulante pour le choix de la ville (qui s'ajuste en fonction du code postal, c'est à dire que si le code postal correspond à plusieurs villes alors la combobox2 n'affiche que les villes qui partagent le même code postal, si il n'y a qu'une occurrence du code postal alors la combobox2 n'affiche que le nom de la ville qui correspond)

Code:
Private Sub ComboBox1_AfterUpdate()
'Code de Robert Excel Download dit titiborregan5
  ' Efface le choix de la liste déroulante "Code postal"
  Me.ComboBox1.ListIndex = -1
  ' Efface les éléments de la liste déroulante "Ville"
  Me.ComboBox2.RowSource = ""
  ' Avec la feuille source
  With Sheets("Source")
    ' Une variable prend la valeur du Code Postal saisie
    sCP = Me.ComboBox1
    ' On trouve le code postal en colonne B
    Dlig = .Range("B" & Rows.Count).End(xlUp).Row
    ' Pour chacune des lignes de la source
    For Lig = 2 To Dlig
      ' Vérifier si le code postal correspond à celui saisi ou sélectionné
      ' Cela permet de gérer les cas où un même code postal est attribué à plusieurs communes
      If .Range("B" & Lig) = sCP Then
      MsgBox ("pour ce code postal : " & sCP & " C'est cette ville " & .Range("C" & Lig))
      'Si c'est le cas alors la liste déroulante "Ville" fera apparaître toutes ces communes au même code postal
        Me.ComboBox2.AddItem .Range("C" & Lig)
      End If
    Next Lig
  End With
End Sub

Merci beaucoup pour votre aide
 

Pièces jointes

  • CPVille.xls
    25 KB · Affichages: 105
Dernière édition:

Discussions similaires