Combobox: Departements -> Villes -> CP

Bonsoir, je viens solliciter votre aide pour un problème de "filtre" sur les combobox d'un formulaire de saisie, en fait j'ai ma colonne E qui correspond à Département, ma colonne F qui correspond elle à Ville et ma colonne G à Code postale (CP).

Et dans mon onglet Ressource j'ai les départements (numéros+nom) et villes (cp+nom).

J'aurai aimé lors de la saisie des données que je puisse choisir dans département le département que je souhaite, puis selon ce premier choix choisir dans la combobox villes la ville désirée et que le code postale s'inscrivent automatiquement dans la TextBox CP.

Je m'excuse par avance du peu de clarté

et je vous joints mon fichiers en espérant que vous pourrez m'aider, merci.

Bonjour,

Pour remplir les villes en fonction du département :

Private Sub ComboBox3_Click()

    Dim Plage As Range
    Dim Cel As Range

    With Worksheets("Ressources")

        Set Plage = .Range(.Cells(2, 4), .Cells(.Rows.Count, 4).End(xlUp))

    End With

    For Each Cel In Plage

        If Left(Cel, 2) = Left(ComboBox3.Text, 2) Then

            ComboBox4.AddItem Cel.Value

        End If

    Next Cel

End Sub

Pour remplir les départements :

Private Sub UserForm_Initialize()

    Dim I As Integer

    For I = 2 To 97

        ComboBox3.AddItem Worksheets("Ressources").Cells(I, 2).Value

    Next I

End Sub

Par contre, pour les départements de 1 à 9, c'est 01 jusqu'à 09 sinon, ça ne marche pas !

Hervé.

Merci beaucoup, c'est exactement ça que je voulais.

Néanmoins, il reste un petit détail, c'est la mise à jour des listes : c'est à dire que si je ne ferme pas mon UserForm, et qu'en rentrant les données je suis amené à sélectionner plusieurs départements différends, la ComboBox villes ne se met pas à jour, mais accumule les villes des différends départements sélectionnés lors des saisies précédentes.

Bonsoir,

Oups, petit oubli de ma part, il faut vider la Combo avant le remplissage avec la commande :

ComboBox4.Clear

donc :

Private Sub ComboBox3_Click()

    Dim Plage As Range
    Dim Cel As Range

    With Worksheets("Ressources")

        Set Plage = .Range(.Cells(2, 4), .Cells(.Rows.Count, 4).End(xlUp))

    End With

    ComboBox4.Clear 'pour vider avant de re remplir !

    For Each Cel In Plage

        If Left(Cel, 2) = Left(ComboBox3.Text, 2) Then

            ComboBox4.AddItem Cel.Value

        End If

    Next Cel

End Sub

Hervé.

Merci beaucoup pour ta réactivité et ton aide, ça marche à merveille.

Rechercher des sujets similaires à "combobox departements villes"