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

XL 2019 liste déroulante sans doublons, sans vide, sans passer par un colonne intermédiaire.

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 !

frederic78

XLDnaute Nouveau
Bonjour,
existe t-il un moyen de créer une liste déroulante sans passer une colonne intermédiaire pour éviter les doublons ?
merci de votre aide
 
Bonjour frederic78, Jean-Marie,

La solution classique passe par une plage supplémentaire avec une formule matricielle.

Si vous n'en voulez pas il faut du VBA.

Voyez le fichier joint et cette macro qui construit la liste en dur :
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim cel As Range, r As Range, f$
Set cel = [A2] 'à adapter
cel.Validation.Delete 'RAZ
If Target.Address <> cel.Address Then Exit Sub
Set r = Range("C2", Range("C" & Rows.Count).End(xlUp)) 'à adapter
If r.Row < 2 Then Exit Sub
For Each r In r
    If r <> "" Then If InStr(f & ",", "," & r & ",") = 0 Then f = f & "," & r
Next
cel.Validation.Add xlValidateList, Formula1:=Mid(f, 2) 'création de la liste en dur, elle est limitée à 8192 caractères
End Sub
Comme toutes les formules cette liste est limitée à 8192 caractères.

Edit : non, c'est 255 caractères, voyez ce fil :

https://excel-downloads.com/threads/macro-liste-deroulante-bug.20083737/#post-20651694

A+
 

Pièces jointes

Dernière édition:
Merci beaucoup Job75, effectivement c'est plus simple
mes connaissances VBA ne me permettaient de trouver ou d'adapter cette formule, d'ailleurs si ma liste déroulante est sur une autre feuille j'adapte comment cette macro
merci
 
d'ailleurs si ma liste déroulante est sur une autre feuille j'adapte comment cette macro
La macro doit être placée dans le module de la feuille où l'on crée la liste de validation puisque c'est une SelectionChange.

Si la liste originale est dans une autre feuille il faut préciser cette feuille pour définir la plage r.

Et ajouter cette macro dans le même module que la SelectionChange :
VB:
Private Sub Worksheet_Activate()
Worksheet_SelectionChange ActiveCell
End Sub
 
- 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
6
Affichages
129
Réponses
3
Affichages
712
  • Question Question
Microsoft 365 INDEX equiv
Réponses
1
Affichages
116
Réponses
8
Affichages
179
Réponses
4
Affichages
135
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…