Liste deroulante sans blancs ni doublons

mefaked78

XLDnaute Nouveau
Bonsoir, il est 1h30 du mat et je n arrive pas a faire qqch qui peut sembler simple. J'ai pourtant lu toutes les archives mais je n y arrive pas. Je souhaite a partir de donnees dans la colonne A de mon fichier faire une liste deroulante sans les doublons ni les blans de la colonne A.

Je vous joins un exemple de données, l'idée serait de faire une liste deroulante dans la feuille 2.

Est ce que qqn peut m'aider? Ca m'aiderait bcp

Merci
 

Pièces jointes

  • list2.xls
    17 KB · Affichages: 712

Jouxte

XLDnaute Occasionnel
Re : Liste deroulante sans blancs ni doublons

Bonjour à toutes et tous,

Merci pour ces réponses.
Je reste néanmoins en recherche d'une solution qui serait facilement transposable pour d'autre cellules pour lesquelles une liste déroulante renvoyant des valeurs uniques d'une colonne d'une autre page serait la bienvenue.
Je souhaites trouver un moyen pour que dans une cellule quelconque on puisse créer une liste déroulante comme celle que l'on trouvait sur les en-tête d'un filtre dans excel 2003.
Amatrices et amateurs de belles formules ....
 

romabisca

XLDnaute Nouveau
Re : Liste deroulante sans blancs ni doublons

Bonjour a tous,

J'ai un petit problème de liste déroulante (doublons et vide) que je n'arrive pas à régler tout seul malgré mes longues recherches sur internet. Quelqu'un peut il m'aider? Je ne comprend pas non plus que certaine fois des informations de ma base de donnée que j'affiche (dans une autres feuille) sont visibles et des fois non.. Merci d'avance
 

JHA

XLDnaute Barbatruc
Re : Liste deroulante sans blancs ni doublons

Re,

Difficile de réaliser des listes sans blancs si tu veux les garder sur les mêmes lignes.
Je me suis servi du code de JB pour trier sans doublons et j'ai modifié les formules sur les noms "Fournisseur" et "Spécialité" mais il reste des vides car beaucoup de champs ne sont pas remplis.
Si cela te convient essaies de modifier les autres noms de plage

JHA
 

Pièces jointes

  • Base_de_donnée_Fournisseur2(internet).xlsm
    64.1 KB · Affichages: 318

romabisca

XLDnaute Nouveau
Re : Liste deroulante sans blancs ni doublons

Salut,
j'ai un autre problème ma fonction décaler marche pour une colonne (la première) c-à-d qu'elle parcours l'ensemble des valeurs de ma colonnes alors que pour les colonnes suivantes elle parcours (avec la même formule pourtant) un certains nombres de valeurs différentes..

Toujours dans le même fichier
 

Jouxte

XLDnaute Occasionnel
Re : Liste deroulante sans blancs ni doublons

Bonjour à tous et bonjour JB,

Je ressort ce fil car j'utilise la macro de JB et je souhaiterais la faire évoluer.
La macro est celle-ci :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$C$6" Then
Set MonDico = CreateObject("Scripting.Dictionary")
a = [ticket]
For Each c In a
MonDico(UCase(c)) = UCase(c)
Next c
b = MonDico.keys
Call tri(b, LBound(b), UBound(b))
For Each c In b: temp = temp & c & ",": Next c
Target.Validation.Delete
Target.Validation.Add xlValidateList, Formula1:=Left(temp, Len(temp) - 1)
End If
End Sub
Sub tri(a, gauc, droi) ' Quick sort
ref = a((gauc + droi) \ 2)
g = gauc: d = droi
Do
Do While a(g) < ref: g = g + 1: Loop
Do While ref < a(d): d = d - 1: Loop
If g <= d Then
temp = a(g): a(g) = a(d): a(d) = temp
g = g + 1: d = d - 1
End If
Loop While g <= d
If g < droi Then Call tri(a, g, droi)
If gauc < d Then Call tri(a, gauc, d)
End Sub

Je souhaiterais dans la même feuille Excel avoir la même liste déroulante en C6, en H5 et en K12 par exemple issue du même NOM ici [Ticket].
Et toujours dans la même feuille Excel avoir une autre liste déroulante issue de la feuille Base colonne AP nommée [sac]

Par avance merci pour vos réponses.

Jouxte
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Liste deroulante sans blancs ni doublons

Bonsoir,

cf PJ

Code:
Option Compare Text
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Not Intersect(Range("c6,h5,k12"), Target) Is Nothing And Target.Count = 1 Then
   Set MonDico = CreateObject("Scripting.Dictionary")
   a = [ticket]
   For Each c In a
     MonDico(UCase(c)) = ""
   Next c
   b = MonDico.keys
   Call tri(b, LBound(b), UBound(b))
   For Each c In b: temp = temp & c & ",": Next c
   Target.Validation.Delete
   Target.Validation.Add xlValidateList, Formula1:=Left(temp, Len(temp) - 1)
  End If
End Sub
Sub tri(a, gauc, droi) ' Quick sort
  ref = a((gauc + droi) \ 2)
  g = gauc: d = droi
  Do
   Do While a(g) < ref: g = g + 1: Loop
   Do While ref < a(d): d = d - 1: Loop
     If g <= d Then
       temp = a(g): a(g) = a(d): a(d) = temp
       g = g + 1: d = d - 1
     End If
   Loop While g <= d
   If g < droi Then Call tri(a, g, droi)
   If gauc < d Then Call tri(a, gauc, d)
End Sub

JB
 

Pièces jointes

  • Classeur1.xls
    29.5 KB · Affichages: 58
  • Classeur1.xls
    29.5 KB · Affichages: 59
  • Classeur1.xls
    29.5 KB · Affichages: 76
Dernière édition:

Discussions similaires

Réponses
15
Affichages
569

Statistiques des forums

Discussions
312 321
Messages
2 087 265
Membres
103 500
dernier inscrit
Suk Ram