|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Amélie DasréIngénieur qualité méthodes Inscription : décembre 2011 Messages : 5 ![]() |
Bonjour.
Merci de m'apporter une aide sur mes problèmes avec Excel. 1) Je voudrais savoir comment créer une liste déroulante sur une cellule excel et que celle-ci de soit pas figée. Je m'explique : Dans ma cellule, je voudrais que défile le nom des personnes que j'ai choisi dans ma liste(grace à la petite flèche sur le côté), que je puisse sélectionner le nom et en re-sélectionner d'autre dans la même cellule et à partir de cette même liste (puisque que plusieurs personnes peuvent être concernées). Les noms serait par exemple, séparé d'un petit tiré (dans la même cellule). 2) Les personnes concernées appartienne à des services spécifiques. J'aimerai que lorsque je sélection une personne, le nom du service apparaisse dans la cellule d'à côté. S'il y a plusieurs personnes, le nom des services sont séparé d'un tiré. (et si plusieurs personnes travail pour le même service, il ne sera pas répété). Interlocuteur concerné Service concerné jean Bernard - Damien Jean Alimentation - Sport Je ne sais pas s'il serait possible de faire tout ca. Merci d'avance pour votre aide et dit-moi au moins si c'est possible. |
|
|
00
|
|
|
#2 | |
|
Expert Confirmé Sénior
![]() Jérôme FONTAINEContrôleur de Gestion Inscription : juin 2006 Messages : 3 918 ![]() |
Bonjour,
Cela devrait être possible en VBA. Mais avant de se lancer, il faut poser le contexte et se poser quelques questions - Si je choisi une personne et que je me trompe => Quelle action pour la supprimer de la liste ? - Une personne déjà choisi devrait ne plus apparaître dans la liste sinon on risque de la choisir une nouvelle fois. - ou se trouve le nom des personnes et les services (même onglet ?)
__________________
Jérôme Citation:
nous encouragera.Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
|
|
|
|
10
|
|
|
#3 | |
|
Membre Expert
![]() Inscription : décembre 2011 Messages : 566 ![]() |
Bonsoir,
Pour éviter d'avoir à gérer une liste dynamique (ajout/suppression de nom, doublon ...), il est possible d'utiliser une liste statique, et de l'afficher dans une ListBox à sélection multiple. ![]() Cette ListBox apparaîtrait lorsqu'on clique sur la cellule contenant la liste des utilisateur. A la fermeture : - du code VBA met à jour la cellule à partir des informations de la liste box. - du code VBA met à jour la cellule adjacente sur la liste des services. Citation:
Avec le tiret il peut y avoir un conflit avec les prénoms composé (ex : Jean-Bernard) En pratique la liste box devrait utiliser les options - Multiselect = fmMultiSelectMulti - ColumnCount = 2 (Utilisateurs | Services) |
|
|
|
10
|
|
|
#4 |
|
Invité de passage
![]() Amélie DasréIngénieur qualité méthodes Inscription : décembre 2011 Messages : 5 ![]() |
Ok, merci BlueMonkey, ca pouvais être une idée mais j'ai un truc genre 70 personnes donc, ca devriendra vite ingérable je pense.
Pour Jérome, -Pour la supression, j'aurai vu plutôt un truc où on clic sur le nom, qui se mets en surbrillance et hop, on supprime ! (a vrai dire, je ne me suis pas posée la question) -oui, effectivement, ca serait pas mal d'une personne déjà sélectionnée ne soit plus dans la liste. - Alors, non, le nom des personnes et les services associées ne sont pas dans le même onglet Je vous envoie un petit exemple de mon tableau excel. Merci encore pour votre aide. |
|
|
00
|
|
|
#5 | |||
|
Expert Confirmé Sénior
![]() Jérôme FONTAINEContrôleur de Gestion Inscription : juin 2006 Messages : 3 918 ![]() |
je te retourne ton fichier avec un peu de code.
- Quand on sélectionne une cellule de la colonne D, on affiche la liste des personnes - on sélectionne les personnes - quand on ferme la userform, on affiche en colonne D les personnes et en colonne E les services VBA - Listbox.xls EDIT : pour rendre dynamique la liste des personnes, modifies l'évènement Initialise comme suit Code :
__________________
Jérôme Citation:
nous encouragera.Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
|
|||
|
|
20
|
|
|
#6 |
|
Invité de passage
![]() Amélie DasréIngénieur qualité méthodes Inscription : décembre 2011 Messages : 5 ![]() |
Jérôme, c'est magique !
Je te remercie beaucoup ! Alors, bon, je ne sais pas comment tu as fais. Pourrais tu m'expliquer vite fais si c'est pas trop trop long ? Sinon, je trouverai un moyen d'utiliser ton travail. Merci encore. Amélie. |
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() Amélie DasréIngénieur qualité méthodes Inscription : décembre 2011 Messages : 5 ![]() |
ha oui, j'avais pas vue la programmation.
Merci |
|
|
00
|
|
|
#8 | |||||||
|
Expert Confirmé Sénior
![]() Jérôme FONTAINEContrôleur de Gestion Inscription : juin 2006 Messages : 3 918 ![]() |
Quelques explications.
On capte la sélection d'une cellule de la colonne D (ou 4) et on lance la fenètre contenant la liste des personnes (Userform1) Code :
Code :
Code :
__________________
Jérôme Citation:
nous encouragera.Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
|
|||||||
|
|
10
|
|
|
#9 |
|
Membre Expert
![]() Inscription : décembre 2011 Messages : 566 ![]() |
Bonsoir,
Tout le travail été fait par JFontaine. Mais juste pour montrer ce que ça donne avec : - 2 colonnes, (nom | service) - checkbox, - 70 personnes. - et une plage de cellule nommée pour simplifier la mise à jour de la liste des personnes. VBA - Listbox 2 cols.xls L'utilisation de plage nommée (est à affecter à la propriété RowSource de la ListeBox). Lorsqu'on ajoute une personne, il suffit de redéfinir la plage, sans toucher au code. Et ça évite un bug mineur dans la version actuelle (si on sélectionne une ligne après le derniers nom visible, il y a une fenêtre d'erreur qui apparaît). |
|
|
20
|
|
|
#10 |
|
Invité de passage
![]() Amélie DasréIngénieur qualité méthodes Inscription : décembre 2011 Messages : 5 ![]() |
Bonjour à tous.
Jérôme et BlueMonkey, tout d'abord, bonne année à vous. Je vous remercie pour vos explications. Je viens de rentrer de vacances et je viens de prendre connaissance de vos messages seulement aujourd'hui. Bon, je vais pas vous le cacher, je ne sais même pas comment on insère une macro sur excel, en particulier de 2003. Il faudra reprendre de la base : Tu vas dans outils, macro, etc.... (ignorante que je suis Merci et à bientôt amis développeurs ! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com