[VBA-Excel]-Liste déroulante

Fermé
a.dequidt Messages postés 42 Date d'inscription mardi 4 septembre 2007 Statut Membre Dernière intervention 23 octobre 2007 - 5 sept. 2007 à 15:09
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 - 21 oct. 2007 à 12:49
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
A voir également:

13 réponses

blux Messages postés 26055 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 17 mai 2024 3 290
5 sept. 2007 à 15:13
Salut,

quel langage/programme?
0
a.dequidt Messages postés 42 Date d'inscription mardi 4 septembre 2007 Statut Membre Dernière intervention 23 octobre 2007 2
5 sept. 2007 à 15:17
Désolée, je travaille sous VBA dans excel
0
a.dequidt Messages postés 42 Date d'inscription mardi 4 septembre 2007 Statut Membre Dernière intervention 23 octobre 2007 2
6 sept. 2007 à 10:44
pas de reponse pour moi :(
0
blux Messages postés 26055 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 17 mai 2024 3 290
6 sept. 2007 à 11:21
Ben je connais plutôt VBA pour ACCESS...

Le principe est de concaténer des champs avec des ; pour les mettre en datasource de la liste, genre :

list.rowsource = "a;b;c;"

Selon moi, le nombre de données n'a pas d'importance, je crois qu'il faudrait plutôt travailler l'extraction du contenu de z1:z5.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
a.dequidt Messages postés 42 Date d'inscription mardi 4 septembre 2007 Statut Membre Dernière intervention 23 octobre 2007 2
6 sept. 2007 à 11:56
Je rappelle que le nombre de donnes peut varier, la liste va donc de Z1 et Z.
0
blux Messages postés 26055 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 17 mai 2024 3 290
6 sept. 2007 à 12:21
de Z1 et Z.
???
0
Utilisateur anonyme
6 sept. 2007 à 13:23
Bonjour,

suggestion :

Sub ModifieListe()
    
    Dim Formule As String
    
    Formule = "=$Z$1:$Z$" & Val(Range("L1").Value)
    
    ' Ajout d'une nouvelle liste
    With ActiveCell.Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
                Operator:=xlBetween, Formula1:=Formule
    End With

End Sub
'

Lupin
0
a.dequidt Messages postés 42 Date d'inscription mardi 4 septembre 2007 Statut Membre Dernière intervention 23 octobre 2007 2
6 sept. 2007 à 13:49
Z1 et Z. le point correspond au nombre de données qui varie
0
blux Messages postés 26055 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 17 mai 2024 3 290
6 sept. 2007 à 13:59
comme au début, tu avais dit Z1:Z5, j'ai pensé que c'était la concaténation des données de ces 5 cellules qui'il te fallait...
0
a.dequidt Messages postés 42 Date d'inscription mardi 4 septembre 2007 Statut Membre Dernière intervention 23 octobre 2007 2 > blux Messages postés 26055 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 17 mai 2024
6 sept. 2007 à 14:09
Si tu avais bien lu mon 1er message tu auras vu que j'avais précisé que le nombre de données etait variable ;)
0
blux Messages postés 26055 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 17 mai 2024 3 290 > a.dequidt Messages postés 42 Date d'inscription mardi 4 septembre 2007 Statut Membre Dernière intervention 23 octobre 2007
6 sept. 2007 à 14:23
J'ai bien lu ton message initial, mais il tendait à me faire croire que TOUTES tes données étaient dans Z1:Z5, en 'vrac', mais que l'on savait combien on en avait grâce au contenu de L1 :-)

Voilà ce que je voyais dans ma tête :

Z1 : a;b;c;d;e
Z2 : f;g
Z3 : h;i;j
Z4 : k
Z5 : l,m

L1 : 13

C'est singulier de voir que tout le monde ne voit pas les mêmes choses dans la même phrase. Généralement, celui qui la compose voit ce qu'il veut dire, alors que celui qui la lit interprète par rapport à ce qu'il a lu...
0
a.dequidt Messages postés 42 Date d'inscription mardi 4 septembre 2007 Statut Membre Dernière intervention 23 octobre 2007 2
6 sept. 2007 à 14:37
Sub ModifieListe()

Dim Formule As String

Formule = "=$Z$1:$Z$" & Val(Range("L1").Value)

' Ajout d'une nouvelle liste
With ActiveCell.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Operator:=xlBetween, Formula1:=Formule
End With

End Sub
0
a.dequidt Messages postés 42 Date d'inscription mardi 4 septembre 2007 Statut Membre Dernière intervention 23 octobre 2007 2
6 sept. 2007 à 14:54
J'ai encore un petit probleme je voudrais que dans les cellules ou j'ai créer la liste de validation, je puisse modifier le contenu de la cellule, lorsque je l'ouvre un message apparait me disait que l'utilisateur a restreint les valeurs possibles.
J'arrive a enlever ce message via Données>Validation>Alerte d'erreur
Mais a la réouverture du fichier le probleme se réitère,

Savez vous comment faire?

Merci
0
Utilisateur anonyme
6 sept. 2007 à 15:34
Bonjour,

Personnellement, je ne comprends pas votre problème et je ne peux le reproduire.
De plus, j'ai bien été témoin de votre disscussion, et je n'ai certes pas voulu m'insérer
dans une discussion comme trouble fait, mais je ne sais pas si m'a suggextion va a été
utile.

Lupin
0
a.dequidt Messages postés 42 Date d'inscription mardi 4 septembre 2007 Statut Membre Dernière intervention 23 octobre 2007 2
7 sept. 2007 à 08:51
Bonjour Lupin,

Oui votre aide m'a été précisieuse, j'ai pu faire une liste de validation comme je le voulais.
0
J'ai eu le même problème et j'ai trouver la solution si tu n'en as pas une: bouton droit sur ta cellule, "format cell", onglet protection, décoche l'option "locked"
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 688
21 oct. 2007 à 12:49
bonjour

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.


Dans menu données/validation/onglet options choisir liste dans autoriser et dans source mettre la formule
=DECALER($Z$1;;;$L$1)  

pour respecter la demande intégralement
ou

=DECALER($Z$1;;;NBVAL(Z:Z)) 

pour utiliser la formule de référence
ou simplissime

=Z:Z

La liste de validation se modifie automatiquement lorsque l'on rajoute une valeur dans la colonne Z.
Il suffit de modifier la lettre de la colonne pour avoir une liste située ailleurs.

Si l'on veut avoir la liste sur une autre feuille, il faut "nommer" la colonne, par exemple 'listeZ' et dans source mettre la formule
=listeZ 
0