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

Signaler
-
Messages postés
23988
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
7 avril 2021
-
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.
A voir également:

9 réponses

Messages postés
4
Date d'inscription
mardi 15 décembre 2009
Statut
Membre
Dernière intervention
23 mars 2010
6
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.
5
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
9935
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
16 mars 2021
1 132
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.
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 391
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.
Messages postés
23988
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
7 avril 2021
6 717
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
Bonjours j ai un entretien demain pour un job de saisie de données j aimerais être aider pour Excel ou puis je apprendre les formules j'ai quelques base d Excel. Merci
Messages postés
23988
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
7 avril 2021
6 717
Je rêve là ?
bonne chance...
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.
Messages postés
9935
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
16 mars 2021
1 132
Bonjour,
J'aimerais comprendre pourquoi vous avez besoin de la formule "=OFFSET(Sheet1!$A$1,0,0,COUNTA(Sheet1!$A:$A),1) ".
Merci
Messages postés
23988
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
7 avril 2021
6 717
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
Messages postés
25948
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
8 avril 2021
5 864
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
Messages postés
23988
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
7 avril 2021
6 717
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
Messages postés
25948
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
8 avril 2021
5 864 >
Messages postés
23988
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
7 avril 2021

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
Ayant rencontré le même problème, j'ai trouvé une solution sur ce lien:

https://perso.unamur.be

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é...