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 :

Liste déroulante 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 confirmé
    Femme Profil pro
    Assistante logistique
    Inscrit en
    Août 2011
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Assistante logistique
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2011
    Messages : 76
    Par défaut Liste déroulante combobox
    Bonjour,

    Je débute avec les userform et j'ai quelques soucis. J'ai consulté les tutoriels et je crois que je ne peux pas faire ce que je souhaite.

    Donc j'ai une base de données d'offres de transports. Avec un tableau croisé dynamique je met à jour une liste de transporteurs, de destinations, de points de départ et pays.
    J'ai nommé mes zones "transp", "dest", "depart" et "pays".

    Dans un userform je souhaite pouvoir filtrer les offres en fonctions des critères sélectionnés : on peut choisir un filtre ou plusieurs. Je préfère passer par un userform pour que ça soit plus facile à utiliser.

    Dans mon userform j'ai une combobox pour chaque critère. Dans le champ "row source" j'ai indiqué ma zone qui a un nb de valeurs variables (ex "transp").
    Ensuite je dois écrire qqch dans "Private Sub ComboBox1_Change()" mais c'est là que je bloque car dans des exemples il faut déclarer toutes les variables mais dans mon cas ça n'est pas possible. Y a t-il une autre solution ?

    Merci pour votre aide.
    Catherine

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour,

    mais c'est là que je bloque car dans des exemples il faut déclarer toutes les variables mais dans mon cas ça n'est pas possible. Y a t-il une autre solution ?
    Pourquoi ?

  3. #3
    Membre confirmé
    Femme Profil pro
    Assistante logistique
    Inscrit en
    Août 2011
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Assistante logistique
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2011
    Messages : 76
    Par défaut
    En fait j'ai bien ma liste déroulante, j'avais dû faire une fausse manip.

    Par contre je ne sais pas trop comment continuer : afficher les solutions possibles en fonction des solutions retenues.

    J'ai mis un bouton valider, c'est là que je dois entrer la programmation et je n'arrive pas à trouver d'exemple précis.

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Pour une liste à valider en colonne A :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Valider_Click()
        If Me.ComboBox1.ListIndex > -1 Then
            With Sheets("Feuil1").Range("A1")
                .Range("A1").AutoFilter
                .Range("A1").AutoFilter 1, Me.ComboBox1.Value
            End With
        End If
    End Sub

  5. #5
    Membre confirmé
    Femme Profil pro
    Assistante logistique
    Inscrit en
    Août 2011
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Assistante logistique
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2011
    Messages : 76
    Par défaut
    Pour afficher le résultat faut-il déclarer toutes les valeurs dans "Private Sub ComboBox1_Change()" etc ?

  6. #6
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    1. A quoi te sert la macro évènementielle "Private Sub ComboBox1_Change()"
    si tu te sers du bouton "Valider" ?
    2. Si tu fais allusion aux cellules dans RowSource, non, heureusement, ce sont des données, pas des variables. Une variable est un nom que tu choisis pour lui affecter une valeur quelconque, par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim c as Range, Var as Integer
    set c = Sheets("Feuil1").Range("F4")
    Var = 2
    etc.

  7. #7
    Membre confirmé
    Femme Profil pro
    Assistante logistique
    Inscrit en
    Août 2011
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Assistante logistique
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2011
    Messages : 76
    Par défaut
    Merci ça fonctionne bien.
    Toutefois je souhaite pouvoir filtrer sur au maximum 5 critères.

    J'en ai mis 2 à la suite mais le filtre ne se fait pas sur les 2 mais uniquement le dernier
    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
    Private Sub cmdbValider_Click()
     
    'filtre point départ
        If Me.ComboBox1.ListIndex > -3 Then
            With Sheets("Liste").Range("c2")
                .Range("c2").AutoFilter
                .Range("c2").AutoFilter 3, Me.ComboBox1.Value
            End With
        End If
     
    'filtre destination
        If Me.ComboBox2.ListIndex > -4 Then
            With Sheets("Liste").Range("d2")
                .Range("d2").AutoFilter
                .Range("d2").AutoFilter 4, Me.ComboBox1.Value
            End With
        End If
     
    End Sub
    Y a t-il une fonction pour cumuler les filtres ?

    Dans un fichier fait par un ancien collègue ""Private Sub ComboBox1_Change()" était complété. Mais je n'ai pas besoin de cela.
    Merci

  8. #8
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    La ligne suivante réinitialise le filtre de la commande précédente, il faut la supprimer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Range("d2").AutoFilter
    Enfin, ListIndex ne peut pas être inférieur à -1 (qui indique qu'aucun choix n'a été fait au niveau de la combobox.

  9. #9
    Membre confirmé
    Femme Profil pro
    Assistante logistique
    Inscrit en
    Août 2011
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Assistante logistique
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2011
    Messages : 76
    Par défaut
    Merci ça fonctionne très bien
    Il me reste à améliorer la présentation.

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

Discussions similaires

  1. [AC-2003] Actualisation des listes déroulantes (ComboBox / Modifiable)
    Par Lorenzole+bo dans le forum IHM
    Réponses: 0
    Dernier message: 29/08/2010, 19h45
  2. Dérouler dynamiquement une liste déroulante (combobox)
    Par yoyo1985 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 12/07/2007, 08h52
  3. Faire la différence de 2 listes déroulantes(Combobox)
    Par alex.a dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 10/07/2007, 14h24
  4. Modifier une liste déroulante (Combobox)
    Par alex.a dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 19/06/2007, 12h22
  5. Liste déroulante / ComboBox : Arborescence (tree)
    Par JohnNC dans le forum Interfaces Graphiques en Java
    Réponses: 8
    Dernier message: 13/07/2006, 11h48

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