IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

ComboBox2 filtré par la ComboBox1


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut ComboBox2 filtré par la ComboBox1
    bonjour
    j'ai un tableau les entêtes présentent les région (A;B;C....)
    chaque région à plusieurs villes (pour la région A les villes A1 A2 A3 .... ; pour la région B les villes B1 B2 B3 ....)
    je veux lorsque je choisi dans ComboBox1 la région A je ne trouve que les villes A1 A2 A3 dans ComboBox2, lorsque je choisi dans ComboBox1 la région B je ne trouve que les villes B1 B2 B3 dans ComboBox2

  2. #2
    Membre Expert
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 703
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 703
    Par défaut
    Bonjour et bienvenue au forum,
    Quel est ton code pour l'instant ?
    Tu peux regarder du côté de la fonction suivante : Application.Match : te permet de trouver la position relative d'un élément dans une plage de cellules. Du coup, si tu prends la ligne 1, cela te permet de trouver la colonne dans laquelle se trouve le nom de la région et donc dans laquelle se trouve les noms de villes. Tu peux aussi utiliser Find qui cherche la cellule contenant la valeur donnée en argument.
    Ensuite, une fois que tu as la colonne, il suffit de donner la bonne source à la combobox 2.

  3. #3
    Membre Expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 871
    Billets dans le blog
    1
    Par défaut
    boujour à tous

    voici un exemple à adapter

    Liste_filtree.xls

    il plein d'autres exemple de ce type dans ce forum

    tu dis

    à plus

  4. #4
    Invité
    Invité(e)
    Par défaut merci bcp c'est ce que je cherche
    Citation Envoyé par Igloobel Voir le message
    boujour à tous

    voici un exemple à adapter

    Liste_filtree.xls

    il plein d'autres exemple de ce type dans ce forum

    tu dis

    à plus
    mais je peux pas comprendre tout le code

  5. #5
    Membre Expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 871
    Billets dans le blog
    1
    Par défaut
    tout d'abord cré en colonne A la liste de tes Région (en A2 :A, A3:B, A4:C ... Comme dans mon exemple)

    cette liste sera dans ta combobox1

    ensuite tu récupères la position de la valeur sélectionnée avec Listindex

    puis tu selectionnes la plage qui doit remplir la Combox2

    C'est un code pas très compliqué.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    Private Sub BT_Annul_Click()
        Unload UF
    End Sub
     
    Private Sub BT_OK_Click()
        Cells(2, 3).Formula = CB_Classe.Value
        Cells(2, 4).Formula = CB_Ele.Value
    End Sub
     
    Private Sub CB_Classe_Change()
        lign = 6
        posit = CB_Classe.ListIndex + 2
        Select Case posit
            Case 2
                While Cells(lign, posit).Value <> ""
                    lign = lign + 1
                Wend
                lign = lign - 1
                CB_Ele.RowSource = "B6:B" & Trim(Str(lign))
            Case 3
                While Cells(lign, posit).Value <> ""
                    lign = lign + 1
                Wend
                lign = lign - 1
                CB_Ele.RowSource = "c6:c" & Trim(Str(lign))
            Case 4
                While Cells(lign, posit).Value <> ""
                    lign = lign + 1
                Wend
                lign = lign - 1
                CB_Ele.RowSource = "d6:d" & Trim(Str(lign))
            Case 5
                While Cells(lign, posit).Value <> ""
                    lign = lign + 1
                Wend
                lign = lign - 1
                CB_Ele.RowSource = "e6:e" & Trim(Str(lign))
        End Select
    End Sub
     
    Private Sub UserForm_Activate()
        CB_Classe.RowSource = "A6:A9"
        CB_Classe.ListIndex = 0
     
    End Sub

  6. #6
    Invité
    Invité(e)
    Par défaut
    merci beaucoup; c'est bien.
    un petit problème s'il y a plus d'une feuilles dans mon classeur

  7. #7
    Invité
    Invité(e)
    Par défaut merci
    j'ai pas bcp d'expérience
    voici mon fichier
    Fichiers attachés Fichiers attachés

  8. #8
    Membre Expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 871
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par john_red Voir le message
    J'ai déjà fait un exemple sur les listes déroulantes dépendantes. Examinez ce modèle : La source
    Tu as raison c'est vrai j'aime bien aussi avec les liste de validations mais j'ai donné un vieux fichier fait sous Excel 2003 qui a plus de 10 ans ! ( le seul que j'avais sous la mains )

    A+

  9. #9
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    Bonjour
    je sais pas trop ou vous été allés mais si je m'en réfère a la demande initiale il n'est pas question de filtre ici mais de colonnes
    3 lignes au max
    exemple deux combo (region/ville) voir démo en image
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Private Sub ComboBox1_Change()
    Set c = Range("A1:C1").Find(ComboBox1.Value, LookIn:=xlValues) 'on cherche la cellule ou il y a la region dans la ligne  1 du sheets
    If Not c Is Nothing Then ComboBox2.List = Range(c.Offset(1, 0), Cells(Rows.Count, c.Column).End(xlUp)).Value
    End Sub
    Private Sub UserForm_Activate()
    ComboBox1.List = Application.Transpose(Range("A1:C1").Value) ' on met les regions qui sont dans la ligne 1 du sheets dans la combo 1
    End Sub
    Nom : demo12.gif
Affichages : 267
Taille : 146,2 Ko
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  10. #10
    Invité
    Invité(e)
    Par défaut
    merci bcp c'est bien fait

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Correlation Combobox1 (EXE: 80%) avec une combobox2 (20%-19%-18%)
    Par KINOU94 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 05/09/2016, 12h11
  2. [XL-MAC 2011] lier OptionButton à ComboBox1 liée à ComboBox2
    Par Tikalins dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 02/07/2015, 12h59
  3. [Débutant] Précision choix dans un ComboBox2 selon ComboBox1
    Par Badreddines dans le forum VB.NET
    Réponses: 4
    Dernier message: 05/04/2013, 18h03
  4. [XL-2003] combobox2 filtré par combobox1
    Par aurelia06 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 03/06/2011, 14h48
  5. [Kylix] Impossible de lier
    Par Scoobs dans le forum EDI
    Réponses: 2
    Dernier message: 20/05/2003, 16h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo