Posez votre question Signaler

Excel validation de données : liste déroulant [Résolu]

Fadjerx - Dernière réponse le 30 déc. 2009 à 21:19
Bonjour les amis,
J'ai perdu énormement du temps avec un truc sous Excel qui logiquement doit pas être difficile à faire.
En fait, pour les valeurs d'une colonne de mon fichier je veux que l'utilisateur choisisse ses valeurs dans une liste déroulante uniquement. Je veux pas qu'il saisisse une valeur supplémentaire.
Donc j'ai utilisé le truc de : Data > Validation après avoir défini ma liste dans Insert > Name > Define
Etant donné que les valeurs de la liste définie peuvent changer, j'ai essayé de créer une liste dynamique en utilisant la formule : =OFFSET(Sheet1!$A$1,0,0,COUNTA(Sheet1!$A:$A),1)
Mon Excel n'a jamais voulu accepter cette formule ! il me dit qu'il y'a une erreur sachant que mes valeurs sont bien sur la première colonne ... Je suis sous Excel 2002.
Ensuite j'ai cherché un moyen de faire cela en code VBA. C'est à dire définir une liste statique normal et ensuite à l'aide d'un petit macro lancé à l'ouverture du fichier, je mis à jour les valeurs de cette liste. J'arrive pas à le faire !
Un help sera vraiment le bienvenue :-(
Amicalement.
Lire la suite 

Excel validation de données : liste déroulant »

11 réponses
Réponse
+4
moins plus
Bojour
Si la liste des valeurs possibles (AUTORISER : LISTE) est dans une autre feuille du même classeur ou dans un autre classeur, il faut définir un nom (DEFINIR…/NOM/INSERTION) qui fait référence à cette liste dans l'autre feuille ou dans l'autre classeur. Dans la zone SOURCE, on renvoie au nom figurant sur la même feuille de calcul.
Par exemple, si la liste des entrées valides se trouve dans les cellules A1:A10 de la première feuille de calcul d'un classeur nommé ValeursPossibles.xls, il faut définir le nom VpCharge sur la feuille de calcul active (celle qui contient la validation) comme étant
=[ValeursPossibles.xls]Feuil1!$A$1:$A$10, puis entrer =VpCharge dans la zone SOURCE.
Ajouter un commentaire
Réponse
+0
moins plus
Bonsoir,
Il me semble qu'il y a du mélange.
Ou avez-vous entré la formule : =OFFSET(Sheet1!$A$1,0,0,COUNTA(Sheet1!$A:$A),1) ......?
Ou se trouve la liste déroulante avec valeur fixe (Je veux pas qu'il saisisse une valeur supplémentaire) ...?
Que voulez-vous faire avec le code VBA ...?
et une copy du code ...... merci.
Ajouter un commentaire
Réponse
+0
moins plus
bonjour

Je suppose que tu as un Excel en anglais.

Ta formule "=OFFSET(Sheet1!$A$1,0,0,COUNTA(Sheet1!$A:$A),1) " il faut la nommer "maliste" par exemple.

Puis dans valider tu choisis liste et =maliste car tu ne peux pas utiliser une autre feuille sauf si elle est nommée.
Ajouter un commentaire
Réponse
+0
moins plus
Bonsoir,

Gérer ta liste en la sélectionnant (avec son titre de champ) avec le menu 'données / liste / créer une liste'.
L'avantage de 'créer liste' est qu'à chaque ajout, le nom étendra sa plage et tu n'as plus besoin de formule offset etc
La nommer et utiliser son nom dans la validation comme l'a expliqué gbinforme.

ericT
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour,

Pour répondre à Jean-Pierre, ma formule je la saisis dans le champ Refers to quand je fais Insert > Name > Define

Ma liste déroulante se trouve sur une autre feuille que la feuille où j'ai défini ma liste.

J'ai tjs le problème avec cette formule, mais je confirme ce qu'a dit Eric et GB sur le fait que j'en n'ai pas besoin.

Merci pour tous.

Amicalemnt.
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour,
J'aimerais comprendre pourquoi vous avez besoin de la formule "=OFFSET(Sheet1!$A$1,0,0,COUNTA(Sheet1!$A:$A),1) ".
Merci
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour,

La validation par liste n'accepte pas une liste située sur une autre feuille. Pour passer cette limitation pas le choix, il faut utiliser un nom.
Et ta formule si tu la mets dans une cellule te retourne une erreur parce qu'elle retourne la reference d'une plage, si tu ajoutes LIGNES(...) devant (ROWS pour toi ?) tu récupères bien le nombre de lignes.

eric
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour tous
Pour uiliser la solution validation de données de la barre d'outil, au cas où la ligne soit sur une autre feuille, il suffit, mais peut être est ce trop bête, de faire un report de la liste sur une colonne hors champ de la feuille à traiter en la liant avc les cellules d'origine et de s'y référer dans la formulation de la validation
Cette option permet aussi de rajputer commentaires et avertissemnets, et je ne suis pas certain que ce ne soit pas cette solution la plus simple à appliquer.
BCRDLMNT
eriiic- 14 nov. 2007 à 16:06
Bonjour Vaucluse,

Si c'est pour dupliquer la liste (même si c'est par formule) pour qu'elle soit présente sur la feuille où a lieu la validation autant la déplacer et abandonner sa présence dans l'autre feuille non ?
Par contre si on désire regrouper toutes ses listes dans une même feuille pour des facilités de gestion, nommer une plage ne présente vraiment pas une grande difficulté. Et la plage de validation devient: =nom_de_la_liste
La plage définie par le nom s'étendra toute seule si on insère les nouveaux item ou bien si on la gère avec 'données / listes / créer une liste'
On peut aussi définir la plage directement dans le nom, comme dit dans le post 2 par gbinforme, avec la formule de Fadjerx qui est correcte.

eric
Vaucluse- 14 nov. 2007 à 16:42
Bonsoir Eric
Ouais, c'est une question de point de vue, je pense. Pour ma part, je préfére avoir la liste dans la feuille,il suffit que les formules couvrent la longueur du champ prévu dans l'entrée
ce qui n'empêche pas de regrouper les entrées dans la même feuille si on le souhaite.......
Chacun son truc, à ce niveau, je pense
BCRDLMNT
Ajouter un commentaire
Réponse
+0
moins plus
Ayant rencontré le même problème, j'ai trouvé une solution sur ce lien:

http://perso.fundp.ac.be/~jmlamber/xl/validation/doc/s06.html

Il s'agit de créer un nom (Insertion -> Nom) sur la feuille où se situe la validation.
Attention car par contre le Nom lui pointe sur les données sur l'autre feuille!

Du coup si ta liste change tu n'a qu'un nom à modifier par feuille...

Cela marcherait également en pointant sur un autre fichier mais je n'ai pas testé...
Ajouter un commentaire
Ce document intitulé « Excel validation de données : liste déroulant » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?