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)
	
	
	
	
	
		
Merci beaucoup pour votre aide
	
		
			
		
		
	
				
			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: