Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Liste déroulante

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Alex92160

XLDnaute Nouveau
Bonjour à tous,

J'ai créé une zone de liste déroulante avec le controle de formulaire à laquelle j'ai associé la macro que je voulais, jusqu'ici tout va bien ! Je souhaite maintenant faire en sorte que cette liste déroulante s'affiche automatiquement à chaque fois que l'utilisateur clique sur l'une des cellules de la colonne B. Là est mon problème j'ai essayé différentes choses mais rien n'a marché....
Auriez vous une idée de comment s'y prendre ?
Je vous joint mon travail complet, la liste déroulante se trouvant dans la feuille "Demandes". N'hésitez pas si vous avez des questions dessus!

Merci d'avance
 

Pièces jointes

Re : Liste déroulante

Bonjour à tous,

Pourquoi toutes ces listes déroulantes et boutons inesthétiques !

Ne serait-il pas mieux de faire une boîte de dialogue pour remplir les feuilles désirées !

Bonne journée !
 
Re : Liste déroulante

Bonjour Alex,
Si tu le veux dans toutes les cellules de la colonne, ce n'est pas avec un contrôle de formulaire qu'il faut travailler, mais avec une formule (quelle horreur !)
Tu sélectionnes la plage et tu cliques sur données/validation. Là tu choisi Liste au lieu de Tout et en dessous dans la partie Source tu entres la plage contenant les valeurs à afficher.
Malheureusement en Xl 2003 la plage doit être dans la même feuille si tu veux la sélectionner directement.
Heureusement il y a un contournement qui consiste à nommer la plage en question : c'est ce que j'ai fait dans la pj : zone D2😀500 de la feuille clients nommée Listeclients.
Cependant une liste de validation avec plein de cellules vides c'est laid et ça pointe d'abord sur les blancs donc tu crois qu'il n'y a rien mais il faut faire remonter l'ascenseur de la boite de liste : je l'ai laissé en ligne 2 pour te montrer.
Mais en ligne 3 et suivantes j'ai utilisé une autre formule qui limite la zone aux seules cellules remplies : listeclientcourte. Pour voir les zones nommées : insertion/nom/définir.


Ensuite il me semble que tu veux afficher le N° du client : ce qu'on obtient par
=EQUIV(Demandes!B2;listeclients;0) à la seule condition que tu n'aies pas 2 clients avec le même nom.


Cordialement
 

Pièces jointes

Re : Liste déroulante

Merci Dugenou c'est super !
Je sais pas si vous aviez compris mais ensuite je voudrais que lorsque l'on choisit un client dans la liste, automatiquement le contenu de la ligne correspondant à ce client (dans la feuille Liste Clients) se remplisse dans la ligne utilisée de notre tableau des demandes ! Avec la liste déroulante que j'avais celà fonctionnait, car je lui avai associé le module 1 qui permettai de faire celà!
Comment faire dans le cas que vous me proposez ??
 
Re : Liste déroulante

Re,
Désolé mais ce sera encore une formule :
=INDEX('Liste Clients'!E$2:E$501;EQUIV(Demandes!$B2;listeclients;0)) se recopie à droite et en bas

les colonnes ne sont pas verrouillées comme ceci quand on recopie à droite on change la matrice de l'index.
Pour la beauté et la lisibilité de la formule on pourrait aussi nommer chaque colonne de ta feuille clients.

J'attire ton attention sur le risque qu'il y a à travailler sur le nom du client (on pourrait avoir des doublons)
il me semblerait préférable que le premier choix se fasse sur le N° du client qui devrait être un code unique.

Cordialement
 

Pièces jointes

Re : Liste déroulante

Il ne peut y avoir deux fois le même nom de client ce cas a été traité dans mon code VBA !
Je vous remercie de votre aide je pense être sur la bonne voie avec ça !
Mais comment faire pour étirer ces formules sur toutes la colonne (je veux dire pour qu'il n'y ai pas #N/A mais que la cellule reste simplement en attente de se remplir lorsque l'on choisi un client dans la liste)
 
Re : Liste déroulante

et bien il faut ajouter un test dans la formule :
remplacer :
Code:
=EQUIV(Demandes!B2;listeclients;0)
par
Code:
=si(estvide(Demandes!B2);"";EQUIV(Demandes!B2;listeclients;0))

et
Code:
=INDEX('Liste Clients'!E$2:E$501;EQUIV(Demandes!$B2;listeclients;0))
par
Code:
=SI(ESTVIDE(B2);"";INDEX('Liste Clients'!E$2:E$501;EQUIV(Demandes!$B2;listeclients;0)))

etc
Si tu as excel 2010 ou plus c'est plus simple avec
=sierreur(formule;"")
 
Re : Liste déroulante

C'est super !! Merci beaucoup à vous deux j'avoue que vos solutions respectives me plaisent beaucoup !
Je pense que je vais faire un fichier avec comme possibilités les deux manières de faire !
Juste une chose Dugenou, lorsque je rentre un N° de demande une feuille FIT se génère et doit se remplir avec les informations tapées dans les colonne successive du tableau, seulement en utilisant la liste déroulante celà ne fonctionne plus savez vous pourquoi ?
Encore merci pour votre aide!
Cordialement
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
12
Affichages
713
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…