Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2021 code postal dans combobox

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 !

AIGOIN

XLDnaute Junior
Bonjour,

En pièce jointe, ma demande soit; affecter le code postal choisi dans une combobox et les villes correspondantes à une autre combobox pour pouvoir en choisir une.
Ensuite affecter le choix dans une feuille
Merci pour votre aide
 

Pièces jointes

Bonsoir Aigoin, Mapomme,
Un essai en PJ avec :
1- La liste des Code postaux en feuilles CodPost
2-Une macro dans Module1- une macro dans l'userform/Combobox1.

NB: J'ai traité que l'hypothèse 3 "Soit avoir le code postal dans la Textbox2 et les villes associées dans la Listbox1."
 

Pièces jointes

Re,

AIGOIN à dit:
non il faut les garder ils correspondent à une ville ou un village un même code est attribué à plusieurs villes ou villages
Vous avez de vrais doublons dans votre tableau (des lignes identiques -> même code et même ville)
Le code retire de la table les vrais doublons (même CP, même ville)

Je n'ai pas compris ce que vous entendez par :
Ensuite affecter le choix dans une feuille

Voici le code. Il est un peu commenté:
VB:
Option Explicit
Dim cp

Private Sub UserForm_Initialize()
Dim i&
   With Sheets("Codes").[a1].ListObject   ' avec le tableau structuré de la cellule A1
      Application.ScreenUpdating = False
      ' Tri selon CP et Ville - retirer les doublons (CP,Ville)
      .Range.Sort key1:=.Range.Cells(1, 1), order1:=xlAscending, key2:=.Range.Cells(1, 2), order2:=xlAscending, MatchCase:=False, Header:=xlYes
      .Range.RemoveDuplicates Columns:=Array(1, 2), Header:=xlYes
      cp = .Range.Value          ' array des (CP,Ville) avec les titres
      For i = 2 To UBound(cp)    ' remplir la liste ComboBox1 avec les CP sans doublons
         If cp(i, 1) <> "" And cp(i, 1) <> cp(i - 1, 1) Then ComboBox1.AddItem Format(cp(i, 1), "00000")
      Next i
   End With
End Sub

Private Sub ComboBox1_Change()
   Remplir ComboBox2, ComboBox1
End Sub

Private Sub TextBox1_Change()
   Remplir ComboBox3, TextBox1
End Sub

Private Sub TextBox2_Change()
   Remplir ListBox1, TextBox2
End Sub

Sub Remplir(ByRef Quoi As Control, ByRef CPref As Control)
' remplir le conrôle Quoi (liste ou combobox) avec les villes dont le CP est égal à celui du contrôle CPref
Dim i&, CPvalue&
   Quoi.Clear                                            ' vider le contrôle à remplir
   CPvalue = Val(CPref)                                  ' transformzer le cpref en nombre
   For i = 2 To UBound(cp)                               ' pour chaque cp
      If cp(i, 1) = CPvalue Then Quoi.AddItem cp(i, 2)   ' si le cp est égal au cp recherché
   Next i                                                ' on ajoute la ville à Quoi
   If Quoi.ListCount > 0 Then Quoi.ListIndex = 0         ' si on a trouvé au moins un cp, on sélectionne le 1er
   ' si le CP comportait 4 caractères et si on a trouvé au moins une ville, on ajoute le "0" à gauche
   If Len(CPref) = 4 And Quoi.ListCount > 0 Then CPref.Value = "0" & CPref.Value
End Sub

nota : un tableau structuré ne comporte pas en général de lignes vides. Une table de données ne comporte pas en général des lignes doublons identiques.
 

Pièces jointes

Dernière édition:
non il faut les garder ils correspondent à une ville ou un village un même code est attribué à plusieurs villes ou villages
Bonjour, j'ai une solution simple qui n'utilise pas la Userform1...
Faire le choix du code dans M2 le le combobox de N2 contiendra que les villes du code choisi.

Je filtre les données dans la Feuil2.
 

Pièces jointes

- 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
40
Affichages
1 K
Réponses
5
Affichages
301
Réponses
9
Affichages
251
Réponses
8
Affichages
131
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…