Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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.
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" <apitos@gmail.com> a écrit dans le message de news:
d508802c-141b-4469-9f91-56532e34b1eb@googlegroups.com...
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".
-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.
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.
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".
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.
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.
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 ?