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

  • Initiateur de la discussion Initiateur de la discussion fb62840
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
1
Affichages
1 K
Réponses
1
Affichages
741
Compte Supprimé 979
C
Réponses
14
Affichages
1 K
Retour