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 :

Alimenter listbox en fonction d'un choix combobox [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 343
    Par défaut Alimenter listbox en fonction d'un choix combobox
    Bonjour

    Je recherche a alimenter ma listbox en fonction du choix de ma combobox.

    Pour illustrer ma demande, je joins un fichier

    je vous remercie d'avance

    Cordialement

    Max
    Fichiers attachés Fichiers attachés

  2. #2
    Membre éclairé
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Octobre 2010
    Messages
    240
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2010
    Messages : 240
    Par défaut
    Bonjour,

    Je n'ai pas fait de l'art mais je pense que ça répond à ce que tu voulais faire.

    Inspire toi de ce que j'ai fait pour adapter a ton fichier




    ----------------------
    Je constate qu'il faut encore travailler sur le fichier car il a 2 3 trucs pas terribles ^^
    Fichiers attachés Fichiers attachés

  3. #3
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Une bonne conception aide beaucoup. Si en feuil tu as les données établies comme ceci, ça sera plus simple
    ALSACE Bas-Rhin ALSACE Haut-Rhin ALSACE Dordogne AQUITAINE Gironde AQUITAINE Landes
    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
    Private Sub ComboBox1_Change()                   'au changement dans la ComboBox1
    Dim R As Range                                   'déclare la variable r (Recherche)
    Dim Ld As Integer                                'déclare la variable ld (Ligne de Départ)
    Dim Lf As Integer                                'déclare la variable lf (Ligne de Fin)
    Dim i As Integer                                 'déclare la variable i (incrément)
     
    Me.ListBox1.Clear                                'vide la ListBox1
    With Sheets("Feuil1")                            'prend en compte l'onglet "Feuil1"
        Lf = .Cells(.Rows.Count, 7).End(xlUp).Row    'définit la ligne de fin
        Set R = .Columns(7).Find(Me.ComboBox1.Value, , xlValues, xlWhole)    'définit la recherche
        If Not R Is Nothing Then                     'condition : si il existe au moins une occurrence
            Ld = R.Row                               'définit la ligne de départ
            Set R = Nothing
            For i = Ld To Lf                         'boucle de la ligne de départ à la ligne de fin
                If .Cells(i, 7) = Me.ComboBox1.Value Then  'si la couleur de la cellule est "jaune clair", sort de la procédure
                    Me.ListBox1.AddItem .Cells(i, 8)    'ajoute la valeur de la cellule en colonne H à la ListBox1
                Else
                    Exit For
                End If
            Next i                                   'prochaine ligne de la boucle
        Else                                         'sinon
            MsgBox "Région non trouvée !"            'message
        End If                                       'fin de la condition
    End With                                         'fin de la prise en compte de l'onglet "Feuil1"
    End Sub

  4. #4
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 343
    Par défaut
    Bonjour mercatog

    Je te remercie beaucoup mais je ne peut pas avoir une autre conception que celle la, sinon tous le reste est a refaire.

    J'ai mis mis ton code sur sur l'User mais il doit avoir un bleme ou alors j'ai du oublier quelque chose .

    Cordialement

    Max

  5. #5
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Si tu veux garder ta conception, au lieu de tester la couleur de fond de la cellule contenant le nom de la région, on teste sur les cellules écrites en majuscule
    Testé sur ton fichier
    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
    Private Sub ComboBox1_Change()                   'au changement dans la ComboBox1
    Dim R As Range                                   'déclare la variable r (Recherche)
    Dim Ld As Integer                                'déclare la variable ld (Ligne de Départ)
    Dim Lf As Integer                                'déclare la variable lf (Ligne de Fin)
    Dim i As Integer                                 'déclare la variable i (incrément)
     
    Me.ListBox1.Clear                                'vide la ListBox1
    With Sheets("Feuil1")                            'prend en compte l'onglet "Feuil1"
        Lf = .Cells(.Rows.Count, 8).End(xlUp).Row    'définit la ligne de fin
        Set R = .Columns(8).Find(Me.ComboBox1.Value, , xlValues, xlWhole)    'définit la recherche
        If Not R Is Nothing Then                     'condition : si il existe au moins une occurrence
            Ld = R.Row + 1                             'définit la ligne de départ
            Set R = Nothing
            For i = Ld To Lf                     'boucle de la ligne de départ à la ligne de fin
                If UCase(.Cells(i, 8)) <> .Cells(i, 8) Then    'si la couleur de la cellule est "jaune clair", sort de la procédure
                    Me.ListBox1.AddItem .Cells(i, 8)    'ajoute la valeur de la cellule en colonne H à la ListBox1
                Else
                    Exit For
                End If
            Next i                                   'prochaine ligne de la boucle
        Else                                         'sinon
            MsgBox "Région non trouvée !"            'message
        End If                                       'fin de la condition
    End With                                         'fin de la prise en compte de l'onglet "Feuil1"
    End Sub

  6. #6
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 343
    Par défaut
    Re mercatog,

    Nickel je te remercie et te souhaite une bonne journée

    Juste une demande pourrez tu allez voir si le temps te le permet un post que j'ai mis ce matin intitulé "Inserer deux WebBrowser"

    J'avoue, ne pas savoir comment faire ?

    merci d'avance

    Max

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

Discussions similaires

  1. [XL-2007] Alimentation Listbox en fonction du changement combobox
    Par ziko_2015 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 30/04/2015, 15h22
  2. [XL-2007] ListBox en fonction du choix d'une combobox
    Par maxval18 dans le forum Macros et VBA Excel
    Réponses: 21
    Dernier message: 20/04/2012, 13h36
  3. [XL-2003] faire apparaitre un label en fonction d'un choix d'une combobox
    Par revemane dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 11/06/2009, 20h00
  4. [SQL] Requête SQL en fonction d'un choix de listbox
    Par Lenezir dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 08/11/2007, 16h08
  5. [vb excel]Déclencher evenement en fonction choix combobox
    Par Mugette dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 28/11/2005, 12h06

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