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 Excel VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de a.dequidt
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    144
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 144
    Par défaut Liste déroulante Excel VBA
    Boujour,

    Je cherche a créer une liste déroulante ou les données de cette liste sont situées dans les cellules "Z1:Z5" sachant que le nombre de données peut varier. Le nombre total de données est située dans la cellule L1.

    Savez vous comment faire?

    Merci

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Ta liste, tu veux la placer dans une feuille de calculs ou dans un userform ?

  3. #3
    Membre confirmé Avatar de a.dequidt
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    144
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 144
    Par défaut
    Etant donné que je souhaite réutiliser la valeur choisie, je pense qu'il vaut mieu que je mette dans une cellule. j'ai essayer de faire une validation de donnée mais comme le nombre de données peut varier, je ne sais pas comment gérer ça

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2006
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 288
    Par défaut
    J'ai eu à gérer ce genre de problème... ma solution pourra peut-être te convenir.

    Il faut mettre ce code derrière la feuille où se trouvent les valeurs de la liste, événement Worksheet / Change.

    Ici les données de ma liste sont en colonne A, à partir de la ligne 7.
    La macro détecte tout changement dans la feuille mais ne se déclenche que si ce changement a lieu en colonne A et après la ligne 6.
    Le nom de ma plage, auquel je fais référence pour la constitution de la liste déroulante, est "liste_admins".

    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
     
    Private Sub Worksheet_Change(ByVal Target As Range)
     
    ' Redéfinition de la plage de la liste déroulante quand on ajoute ou supprime une entrée
     
    Dim var_active, var_range, var_refers, libelle_liste As String
     
    On Error GoTo fin
     
    If Target.Row > 6 And Target.Column = 1 Then
        var_active = ActiveCell.Address
     
        i = 7
        Do While Cells(i, Target.Column) <> ""
            i = i + 1
        Loop
        i = i - 1
     
        var_range = "A7:A" & i
        var_refers = "=Paramètres!R7C1:R" & i & "C1"
        libelle_liste = "liste_admins"
     
        Range(var_range).Select
        ActiveWorkbook.Names.Add Name:=libelle_liste, RefersToR1C1:=var_refers
        Range(var_active).Select
     
    End If
     
    fin:
     
    End Sub

  5. #5
    Membre confirmé Avatar de a.dequidt
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    144
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 144
    Par défaut
    J'aurai préférer utiliser une validation des données, mais le probleme que je rencontre est que la liste est "infinie", car étant donné que je ne connais pas la longueur de la liste j'ai pris toute la colonne ou était les données.

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2006
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 288
    Par défaut
    Oui c'est bien le but de mon exemple de limiter la liste aux cellules utilisées.
    La boucle du "i" sert à ça.

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

Discussions similaires

  1. Réponses: 50
    Dernier message: 12/06/2014, 14h48
  2. utiliser les éléments d'une liste déroulante excel en VBA
    Par erlerwade dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 08/06/2012, 12h32
  3. Réponses: 2
    Dernier message: 20/02/2008, 12h30
  4. Réponses: 2
    Dernier message: 21/10/2007, 00h56
  5. Réponses: 4
    Dernier message: 16/06/2005, 15h37

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