Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Liste de validation sans doublons et triée

4 réponses
Avatar
Apitos
Bonsoir =E0 tous,

Comment peut-on avoir une liste de validation sans doublons et tri=E9e ?

Les donn=E9es sont dans la feuille "BD" et la liste se trouve dans la feuil=
le "TB".

Merci d'avance.

4 réponses

Avatar
Jacky
Bonjour,

-Sélection d'une cellule en feuille tb (exemple A1)
-Menu données==>Filtrer==>Filtre élaboré
-Cocher Copier vers un autre emplacement
-Cocher Extraction sans doublon
-Plage ==> sélectionner la plage de donnée( exemple Feuille BD A2:A63)
-Copier dans ==> $A$1

Eventuellement nommer cette liste(exemple "MaListe") pour pouvoir sans servir dans un combobox avec
RowSource==>MaListe

en vba cela devrait ressembler à ceci
La plage de donnée se trouve en A2:Axx de la feuille BD (y compris le titre en A2) dans cet exemple
'-------------------
Sub jj()
Dim derlg As Long
With Sheets("tb")
.Columns("a:a").Clear
derlg = Sheets("BD").Cells(Rows.Count, "A").End(xlUp).Row
Sheets("BD").Range("A2:A" & derlg).AdvancedFilter Action:=xlFilterCopy, CopyToRange:=.Range("a1"),
Unique:=True
derlg = .Cells(Rows.Count, "A").End(xlUp).Row
.Range("A2:A" & derlg).Sort Key1:=.Range("a2"), Order1:=xlAscending
.Range("A2:A" & derlg).Name = "Maliste"
End With
End Sub
'---------------
--
Salutations
JJ


"Apitos" a écrit dans le message de news:

Bonsoir à tous,

Comment peut-on avoir une liste de validation sans doublons et triée ?

Les données sont dans la feuille "BD" et la liste se trouve dans la feuille "TB".

Merci d'avance.
Avatar
DanielCo
Bonjour,
Adapte les plages à tes données :
Sub test()
Dim Plage As Range
ActiveWorkbook.Names("Plage").Delete
With Sheets("BD")
.[C:C].ClearContents
Set Plage = .Range(.[A1], .Cells(.Rows.Count, 1).End(xlUp))
Plage.AdvancedFilter Action:=xlFilterCopy, CopyToRange:=.[C1],
Unique:=True
Set Plage = .Range(.[C2], .Cells(.Rows.Count, 3).End(xlUp))
With .Sort
.SortFields.Clear
.SortFields.Add Key:=Plage, SortOn:=xlSortOnValues,
Order:=xlAscending, _
DataOption:=xlSortNormal
.SetRange Plage
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.Apply
End With
ActiveWorkbook.Names.Add "Plage", RefersTo:="½!" & Plage.Address
End With
With Sheets("TB")
With .[C1].Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop,
Operator:= _
xlBetween, Formula1:="=Plage"
.InCellDropdown = True
.ShowInput = True
.ShowError = True
End With
End With
End Sub

Daniel


Bonsoir à tous,

Comment peut-on avoir une liste de validation sans doublons et triée ?

Les données sont dans la feuille "BD" et la liste se trouve dans la feuille
"TB".

Merci d'avance.
Avatar
Apitos
Bonsoir Jacky, DanielCo,

Merci pour vos réponses :)

Est-ce pratique de remplir la liste depuis l'événement Worksheets_Activ ate au lieur d'un bouton ?

Merci.
Avatar
DanielCo
Bonjour
Oui. Si la liste n'évolue pas pendant l'ouverture du classeur, tu peux
même la mettre dans WorkBook_Open.
Daniel


Bonsoir Jacky, DanielCo,

Merci pour vos réponses :)

Est-ce pratique de remplir la liste depuis l'événement Worksheets_Activate au
lieur d'un bouton ?

Merci.