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 :

Créer par VBA une liste déroulante et la remplir


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2008
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 101
    Par défaut Créer par VBA une liste déroulante et la remplir
    Bonjour !

    Je me suis peut-être aventurer en adoptant cette solution; vos réponses ou l'absence de réponse m'en diront plus.
    Je créer une feuille par code VBA puis
    sur cette feuille j'installe une liste déroulante sensée proposer les 12 mois de l'année ; l'utilisateur choisira le mois et je le récupérerai en VBA. Voilà le problème :
    - je ne parviens pas à charger la liste des 12 mois de l'année.
    C'est probablement un problème d'écriture mais c'est peut-être aussi une limite du VBA ???!!!
    Quelqu'un peut m'aider ??!!

    Merci par avance.

  2. #2
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    à quoi ressemble ton code complet ?

    via l'enregistreur de macro, t'aura également une piste (pas très jolie) à adapter

  3. #3
    Membre Expert
    Inscrit en
    Septembre 2007
    Messages
    1 142
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 142
    Par défaut
    Bonjour,
    je ne parviens pas à charger la liste des 12 mois de l'année.
    C'est probablement un problème d'écriture mais c'est peut-être aussi une limite du VBA ???!!!
    Pour créer uns liste de validation pour les mois en A1 ( à toi d'adapter la cellule)
    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
    Sub liste_mois()
    Dim m As Integer, lst As String
        For m = 1 To 12
            lst = lst & Format(DateValue("1/" & m & "/2016"), "mmmm") & ","
        Next m
        With Range("A1").Validation
            .Delete
            .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, _
                Formula1:=lst
            .IgnoreBlank = True
            .InCellDropdown = True
            .InputTitle = "Choix du mois"
            .ErrorTitle = ""
            .InputMessage = "Votre mois choisi"
            .ErrorMessage = ""
            .ShowInput = True
            .ShowError = True
        End With
    End Sub

  4. #4
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132

  5. #5
    Membre confirmé
    Inscrit en
    Décembre 2008
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 101
    Par défaut
    Désolé anasecu mais ça ne marche pas.
    Evidemment la liste déroulante se crée mais elle ne se remplit pas.
    En intégrant ton code au mien voici ce que ça donne :
    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
    Sub CreaBp()
    Dim Obj As OLEObject
    Dim m As Integer, lst As String
     
    ' la liste déroulante
    Set Obj = Sheets("Feuil2").OLEObjects.Add("Forms.combobox.1")
    With Obj
    .Left = 256
    .Top = 9
    .Width = 50
    .Height = 15
    End With
     
        For m = 1 To 12
            lst = lst & Format(DateValue("1/" & m & "/2016"), "mmmm") & ","
        Next m
        With Sheets("Feuil2").Range("A1").Validation
            .Delete
            .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, _
                Formula1:=lst
            .IgnoreBlank = True
            .InCellDropdown = True
            .InputTitle = "Choix du mois"
            .ErrorTitle = ""
            .InputMessage = "Votre mois choisi"
            .ErrorMessage = ""
            .ShowInput = True
            .ShowError = True
        End With
     
    End Sub

  6. #6
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    le code fonctionne parfaitement, mais ne correspond pas à ton besoin actuel.

    toi tu insères un contrôle OLE Combobox et tu veux y mettre dedans les 12 mois de l'année

    dans la proposition de anasecu, le menu déroulant est crée dans la cellule A1 sous forme de "liste de validation".

    A mon sens, c'est quand même mieux de créer une liste de validation .... beaucoup moins compliqué de l'alimenter et SURTOUT ça permettra de très simplement récupérer le choix de l'utilisateur par VBA (via l'évènement "Change" de l'objet worksheet)

    Et y'a encore beaucoup d'autres choses que tu n'auras pas besoin de gérer avec ça

  7. #7
    Membre confirmé
    Inscrit en
    Décembre 2008
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 101
    Par défaut
    Merci pour ton aide et tes précisions !
    Le problème que je rencontre et que j'ai probablement mal expliqué depuis le début c'est que je dois créer une nouvelle feuille par VBA et y installer une liste déroulante combobox par exemple contenant les 12 mois de l'année afin que l'utilisateur fasse le choix du mois et que je récupère l'info.
    A ton avis tout ce qui a été écrit en amont est adapté et préférable ??!!

Discussions similaires

  1. [XL-2010] Association photo par rapport à une liste déroulante
    Par graphikris dans le forum Excel
    Réponses: 5
    Dernier message: 21/01/2014, 04h10
  2. [AC-2007] Problème d'ajout par rapport à une liste déroulante
    Par kemche dans le forum IHM
    Réponses: 9
    Dernier message: 17/12/2013, 17h23
  3. Réponses: 0
    Dernier message: 24/03/2010, 15h30
  4. Réponses: 4
    Dernier message: 06/02/2009, 11h28
  5. Avoir un contenu de liste déroulante différent par rapprot à une liste déroulante
    Par beegees dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 19/10/2006, 08h07

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