Liste déroulante excel

Fermé
benoit - 25 janv. 2010 à 18:30
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 - 28 janv. 2010 à 18:30
Bonjour,
J'ai crée une liste déroulante sur excel avec les noms de différents salariés afin de réaliser un planning quotidien. Je voudrais savoir quelle est la formule en macro ou nom de la fonction afin que lorsqu'un salarié a déjà été sélectionné il s'efface automatiquement de ma liste déroulante ? J'obtiendrai donc à la fin de ce planning une liste de noms vide puisque j'aurai utiliser tous les salariés.
Merci de votre aide.
A voir également:

9 réponses

Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 396
25 janv. 2010 à 18:58
Boinjour
ci joint un exemple de construction qui pourra peut être vous servir... en attendant mieux (ce qui ne devrait pas manquer)
http://www.cijoint.fr/cjlink.php?file=cj201001/cijRYtp98p.xlsm
Revenez si besoin d'explications complémentaires.
Crdlmnt
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 396
25 janv. 2010 à 19:02
Ci dessous nouveau lien, je ne suis pas sur que le précédent fonctionne
http://www.cijoint.fr/cjlink.php?file=cj201001/cij7Al2foM.xls
crdlmnt
0
Merci pour votre exemple. Comment avez vous fait pour créer vos liste comme ça ? A quoi sert le renvoi du code ?
En vous remerciant de votre aide.
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 396
25 janv. 2010 à 20:02
Re

la colonne A est la liste initiale créée manuellement

Etablir la liste évolutive sans "trou":

la colonne B détecte si le nom est déja édité dans le planing, si oui renvoi 0 et si non incrémente de 1 la valeur du code. Ainsi seuls les noms non utilisés sont numérotés.
la colonne C renvoie la liste des codes créés en B, dans l'ordre, ceci pour une questions de confort, pour éviter un menu déroulant "à trou" au fur et à mesure que les noms sont supprimés.
La formule incrémente de 1 à chaque ligne, jusqu'à ce que le maxi de la colonne C soit égal à celui de la colonne B.
Le maxi de cette colonne servira aussi à établir la longueur de la liste déroulante
Il faut que ce champ C soit évidemment aussi long que la liste initiale

Editer la liste restante

En colonne D, la formule cherche le nom de la colonne A correspondant dans la colonne D au code affiché en colonne C


Affecter la liste à la validation:

La formule placée dans Données / Validation / Liste est limitée par $D$3 qui est toujours le départ de liste et par
INDIRECT("D"&MAX($C$2:$C$23)) qui donne la limite correspondante au maxi. Toutefois il y a une erreur ici dans ma proposition (ça m'a échappé) car ce code doit être:
=INDIRECT("D"&MAX($C$2:$C$23)+2) pour que cette valeur soit le N° de la ligne correspondante au dernier nom de la liste.(Le 1 étant en ligne 3, tout se décale de 2 lignes.)
L'ensemble de ce code équivaut à écrire l'adresse $E$25 si le maxi est 23 par exemple


Ainsi, la liste s'ajuste en longueur au nombre de noms restants dans la colonne E, mais ceci est un plus dont vous n'avez pas besoin si vous supporter que la liste aie la longueur du champ en C avec toute une série de vides en fin de liste, correspondants aux emplacements des noms déja utilisés.

Espèrant avoir été clair.... mais ça n'est pas très facile!

Crdlmnt
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 396
25 janv. 2010 à 20:12
Re re
petit ajout au message explicatif précédent:
Il y a encore un erreur (c'est le jour) dans la formule de la colonne C de mon exemple. Il faut bloquer en C3 les adresses du champ B3:B25 qui doit s'écrire:
$B$3:$B$25
avant de tirer la formule vers le bas.
Avec mes excuses.
Bien cordialement
0
Explications claires ! Je vais adapter ça à mon planning.
Merci beaucoup de votre aide.
0
Re
dsl j'ai oublier de vous demander : est il possible d'adapter tout ça pour une liste déroulante en cascade : par exemple albert, francis, jean, monique, serge : patissier
denis, sylvain,brice : boucher
antoine, christophe, olivier, guillaume : boulanger
On aurait donc dans une 1ere colonne à sélectionner le type de métier puis dans une deuxième un des noms correspondant au métier. Pourrait - on le faire dans le désordre ? d'abord un patissier puis un boucher, apres un autre patissier, un boulanger....
Votre solution est elle adaptable à cela ?
Merce de ce dernier renseignement.
0

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

Posez votre question
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 396
26 janv. 2010 à 09:24
Bonjour
tout est possible, voici un modèle qui ne fonctionne pas tout à fait comme le premier, car j'ai pour l'instant fait l'impasse sur la mise à longueur de chaque liste, mlais reste à mon sens largement utilisable
Excel demande à ce que ce dernier point soit un peu creusé,si besoin,( je ne sais pas encore si on peut le traiter entre deux feuilles différentes avec des liste évolutives nommées ou s'il faut renvoyer des listes sur la feuille d'édition)

Voir les commentaires sur le fichier.
http://www.cijoint.fr/cjlink.php?file=cj201001/cijec9Ah84.xls
Bien cordialement
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 396
26 janv. 2010 à 13:30
... et pour compléter le message précédent, un fichier avec des listes de noms évolutives en fonction de la liste des "restants" non affectés
http://www.cijoint.fr/cjlink.php?file=cj201001/cijbPEufD8.xls
Mais là, les données sont sur la même feuille.
Reste plus qu'à choisir
Bon courage
Crdlmnt
0
Je suis en train de regarder vos 2 fichiers. Je vous remercie. J'ai essayé de réaliser le 2ème fichier pour mon cas ; ça ne marche pas. Je vais donc essayer le 1er.
Par ailleurs que signifie dans les formules : PLAN
Est ce une base de données ? si oui de l'ensemble du personnel ou ensemble du personnel + métiers ?
merci
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 396
26 janv. 2010 à 17:01
Re
A priori, il n'y a rien qui puisse empêcher le fichier 2 de marcher, sauf peut être des configurations différentes à adapter.

Si vous le souhaitez, vous pouvez soumettre ici votre fichier en suivant le chemin utilisé pour vous proposer les miens. Vous pouvez aussi (tout en en conservant la configuration), proposer un fichier en remplaçant les infos qu'il contient par des infos bidons.

Quant à l'indication PLAN dans mes formules, elle correspond au nom donné au champ à exploiter. Vous pouvez voir cela en cliquant sur Insertion / Nom / Définir et vous verrez la liste de ce qui est nommé dans ce fichier, avec les limites de champ pour chaque nom..
(Sur 2007 passer par "Formule"dans le ruban et "Donner un nom")

Cette solution éclaircit certaines formules en évitant d'inscrire les limites de champs et les blocages, mais vous pouvez bien sur utiliser directement ces limites.

Restant à votre écoute
Crdlmnt
0
Bonne nouvelle ! Mon planning que j'ai crée a l'air de marcher. Merci bien.
Par contre j'ai une autre question : serait il possible lorsque j'ai sélectionné le nom du salarié d'afficher dans une autre cellule directement son adresse par exemple. Il s'agit (je pense) d'une cellule liée qui va chercher dans une base de donnée (avec la fonction recherchev ?) cette information. Le problème c'est qu'avec ce type de liste déroulante ( donnée>validation>liste...) on ne peut pas mettre en option une cellule liée.
Y a t'il une autre solution ?
En vous remerciant.
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 396
27 janv. 2010 à 08:00
Bonjour
voila! on avance...!
Ne connaissant pas votre fichier, je ne peux que vous proposez des solutions qu'il restera à adapter selon votre fichier.

il y a au moins deux possibilités

La formule RECHERCHEV
il faut pour celle ci que votre liste de nom soit placée avant la liste des adresses, car elle cherche dans la 1° colonne du champ obligatoirement
un conseil: nommez vos champs pour simplifier les formules, par exemple ADRESSE pour un champ incluant:
en 1° colonne la liste des noms et plus loin les adresses
La formule complète dans la feuille d'édition:
=SI(ESTVIDE(celle du nom;"";RECHERCHEV(cell du nom;ADRESSE;n° de colonne adresses dans le champ;0))
la condition SI est là pour éviter l'affichage #/NA si la cellule du nom est vide.Le 0 évite à la formule d'éviter des valeurs proches

La formule INDEX / EQUIV
vous en avez un exemple dans la liste d'édition des noms restants à partir du code dans mes modéles.
dans ce cas la colonne de recherche peut être n'importe où dans le champ, il faut seulement que les n° de lignes soient identiques dans tous les items de la formule:
=SI(ESTVIDE(Celle du nom;"";INDEX(votre champ complet;EQUIV(celle du nom; colonne de recherche; 0); n° de colonne adresses dans le champ))
nota: le 0 de l'item EQUIV est un code excel définissant le type d'édition à effectuer.

Bon courage. Bonne journée

Crdlmnt

0
Bonsoir,
Je vous annonce une bonne nouvelle j'ai à peu près fini mon planning... Reste plus que la mise en forme globale et quelques détails. Mais le plus gros est fait. Merci en tout cas pour vos conseils, votre aide, vos explications, vos exemples !
Je garde précieusement votre pseudo au cas où j'aurais de nouveaux renseignements sur excel à vous demander.
En vous remerciant encore une fois.
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 396
28 janv. 2010 à 18:30
Bonsoir
et bien voila une bonne nouvelle, j'en suis ravi.
Bien sur, vour pouvez garder mon pseudo pour d'autres problèmes si vous le souhaitez, mais je vous conseille quand même de rester dans le domaine de "l'édition publique "pour vos éventuelles prochaines questions. Il y a en effet sur CCM des compétences qui vont bien au dela des miennes et dont il serait bien dommage de vous priver.
Bonne route, merci pour votre dernier message.
Bien cordialement
0