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 :

Conditions dans une liste déroulante


Sujet :

Macros et VBA Excel

  1. #1
    En attente de confirmation mail
    Inscrit en
    Janvier 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 5
    Points : 5
    Points
    5
    Par défaut Conditions dans une liste déroulante
    Bonjour à tous,

    Voila je gère une grande base de donnée sous Excel (3000 lignes environ) et d'une vingtaine de colonnes.

    A partir d'un Userform et à l'aide d'une liste déroulante, je souhaite que ma liste déroulante soit alimenté par les donnée d'une colonne de ma base.
    Jusque la le rowsource est suffisant. Seulement je souhaite que cette liste puisse avoir des controles et qu'elles n'affichent que certaines valeurs, donc en bloquer une partie.

    VOila un exemple.

    J'ai une colonne d'immatriculation
    Une colonne differenciant gasoil/essence/Gpl ...
    une colonne différenciant CT ok/pas ok
    etc ...

    Ma liste déroulante est alimenté par la colonne des immatriculations, mais si je ne cherche que les véhicules roulants au gasoil? ou que ceux qui ont leur CT ok?

    Comment peut on faire cette liste déroulante adaptée aux conditions imposées? (sans créer autant de rowsource que de possibilités)

    Merci de vos réponses

    Leona K.

  2. #2
    Membre éclairé

    Profil pro
    Inscrit en
    Mai 2007
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 514
    Points : 824
    Points
    824
    Par défaut
    Bonjour,

    Tu peux filtrer ta plage selon tes criteres et ensuite charger ta zone de liste avec les enregistrements visibles.

    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
    Private Sub UserForm_Initialize()
        Dim Plage As Range, Zone As Range, i As Long
        Set Plage = Range("A1:Z3000")
        Plage.AutoFilter 'Supprime un filtre eventuel
        With Plage
            .AutoFilter Field:=3, Criteria1:="Gasoil"
            'Le 3 identifie la colonne a filtrer
            With .Columns(1).SpecialCells(xlCellTypeVisible)
                'Le 1 identifie la colonne qui alimente ta liste
                For Each Zone In .Areas
                    For i = 1 To Zone.Cells.Count
                        ComboBox1.AddItem Zone.Cells(i).Value
                    Next
                Next
                ComboBox1.RemoveItem 0 'Supprime le titre de colonne
            End With
        End With
    End Sub
    Cordialement,

    Tirex28/

  3. #3
    En attente de confirmation mail
    Inscrit en
    Janvier 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Impecable, rien à ajouter si ce n'est un grand merci (avec les commentaires en plus, c'est parfait !)

    Bonne soirée et encore merci Tirex !

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

Discussions similaires

  1. [XL-MAC 2011] Condition sur le nombre d'items contenus dans une liste déroulante
    Par xixil dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 27/03/2013, 18h55
  2. Comment rappeler une fonction dans une liste déroulante
    Par strogos dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 05/05/2005, 23h54
  3. Saisie de plusieurs caractère dans une liste déroulante
    Par Oluha dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 07/03/2005, 14h32
  4. Rajouter "Tous" dans une Liste Déroulante
    Par smirold dans le forum IHM
    Réponses: 7
    Dernier message: 25/10/2004, 13h29

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