Bonjour à tous,
Je passe de 2003 à 2007... pas evident !
Avec l'enregistreur j'ai fait cette macro qui me permet de trier un tableau
sur 3 critères (la ligne de titres est la 6)
1°)Y a t -il moyen d'alléger ce code ? sachant que j'ai nommé mon tableau
(avec les titres) "DATA" et que je veux trier les données sur A6/B6/C6
Merci pour votre aide
Domi
Sub Macro2()
'
' Macro2 Macro
'
'
Range("A6:I6").Select
Range(Selection, Selection.End(xlDown)).Select
ActiveWorkbook.Worksheets("LOGINS").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("LOGINS").Sort.SortFields.Add
Key:=Range("A7:A102"), SortOn:=xlSortOnValues, Order:=xlAscending,
DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("LOGINS").Sort.SortFields.Add
Key:=Range("B7:B102"), SortOn:=xlSortOnValues, Order:=xlAscending,
DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("LOGINS").Sort.SortFields.Add
Key:=Range("C7:C102"), SortOn:=xlSortOnValues, Order:=xlAscending,
DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("LOGINS").Sort
.SetRange Range("A6:I102")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
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
Daniel.C
Bonjour. Non testé, deux méthodes, l'une avec la méthode XL2003 et l'autre avec la méthode XL2007 :
Sub Tri2007() Dim Ligne As Long Ligne = [I6].End(xlDown).Row With ActiveWorkbook.Worksheets("LOGINS") .Sort.SortFields.Clear .Sort.SortFields.Add Key:=Range("A7:A" & Ligne), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal .Sort.SortFields.Add Key:=Range("B7:B" & Ligne), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal .Sort.SortFields.Add Key:=Range("C7:C" & Ligne), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal End With With ActiveWorkbook.Worksheets("LOGINS").Sort .SetRange Range("A6:I" & Ligne) .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With End Sub
Sub Tri2003() Dim Ligne As Long Ligne = [I6].End(xlDown).Row With ActiveWorkbook.Worksheets("LOGINS") Range("A6", [I6].End(xlEnd)).Sort Key1:=[A6], key2:=[B6], key3:=[C6], Header:=xlYes End With End Sub
Daniel
Bonjour à tous, Je passe de 2003 à 2007... pas evident ! Avec l'enregistreur j'ai fait cette macro qui me permet de trier un tableau sur 3 critères (la ligne de titres est la 6) 1°)Y a t -il moyen d'alléger ce code ? sachant que j'ai nommé mon tableau (avec les titres) "DATA" et que je veux trier les données sur A6/B6/C6 Merci pour votre aide Domi
Sub Macro2() ' ' Macro2 Macro '
' Range("A6:I6").Select Range(Selection, Selection.End(xlDown)).Select ActiveWorkbook.Worksheets("LOGINS").Sort.SortFields.Clear ActiveWorkbook.Worksheets("LOGINS").Sort.SortFields.Add Key:=Range("A7:A102"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal ActiveWorkbook.Worksheets("LOGINS").Sort.SortFields.Add Key:=Range("B7:B102"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal ActiveWorkbook.Worksheets("LOGINS").Sort.SortFields.Add Key:=Range("C7:C102"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With ActiveWorkbook.Worksheets("LOGINS").Sort .SetRange Range("A6:I102") .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With End Sub
Bonjour.
Non testé, deux méthodes, l'une avec la méthode XL2003 et l'autre avec
la méthode XL2007 :
Sub Tri2007()
Dim Ligne As Long
Ligne = [I6].End(xlDown).Row
With ActiveWorkbook.Worksheets("LOGINS")
.Sort.SortFields.Clear
.Sort.SortFields.Add Key:=Range("A7:A" & Ligne),
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
.Sort.SortFields.Add Key:=Range("B7:B" & Ligne),
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
.Sort.SortFields.Add Key:=Range("C7:C" & Ligne),
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
End With
With ActiveWorkbook.Worksheets("LOGINS").Sort
.SetRange Range("A6:I" & Ligne)
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
Sub Tri2003()
Dim Ligne As Long
Ligne = [I6].End(xlDown).Row
With ActiveWorkbook.Worksheets("LOGINS")
Range("A6", [I6].End(xlEnd)).Sort Key1:=[A6], key2:=[B6],
key3:=[C6], Header:=xlYes
End With
End Sub
Daniel
Bonjour à tous,
Je passe de 2003 à 2007... pas evident !
Avec l'enregistreur j'ai fait cette macro qui me permet de trier un tableau
sur 3 critères (la ligne de titres est la 6)
1°)Y a t -il moyen d'alléger ce code ? sachant que j'ai nommé mon tableau
(avec les titres) "DATA" et que je veux trier les données sur A6/B6/C6
Merci pour votre aide
Domi
Sub Macro2()
'
' Macro2 Macro
'
'
Range("A6:I6").Select
Range(Selection, Selection.End(xlDown)).Select
ActiveWorkbook.Worksheets("LOGINS").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("LOGINS").Sort.SortFields.Add
Key:=Range("A7:A102"), SortOn:=xlSortOnValues, Order:=xlAscending,
DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("LOGINS").Sort.SortFields.Add
Key:=Range("B7:B102"), SortOn:=xlSortOnValues, Order:=xlAscending,
DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("LOGINS").Sort.SortFields.Add
Key:=Range("C7:C102"), SortOn:=xlSortOnValues, Order:=xlAscending,
DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("LOGINS").Sort
.SetRange Range("A6:I102")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
Bonjour. Non testé, deux méthodes, l'une avec la méthode XL2003 et l'autre avec la méthode XL2007 :
Sub Tri2007() Dim Ligne As Long Ligne = [I6].End(xlDown).Row With ActiveWorkbook.Worksheets("LOGINS") .Sort.SortFields.Clear .Sort.SortFields.Add Key:=Range("A7:A" & Ligne), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal .Sort.SortFields.Add Key:=Range("B7:B" & Ligne), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal .Sort.SortFields.Add Key:=Range("C7:C" & Ligne), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal End With With ActiveWorkbook.Worksheets("LOGINS").Sort .SetRange Range("A6:I" & Ligne) .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With End Sub
Sub Tri2003() Dim Ligne As Long Ligne = [I6].End(xlDown).Row With ActiveWorkbook.Worksheets("LOGINS") Range("A6", [I6].End(xlEnd)).Sort Key1:=[A6], key2:=[B6], key3:=[C6], Header:=xlYes End With End Sub
Daniel
Bonjour à tous, Je passe de 2003 à 2007... pas evident ! Avec l'enregistreur j'ai fait cette macro qui me permet de trier un tableau sur 3 critères (la ligne de titres est la 6) 1°)Y a t -il moyen d'alléger ce code ? sachant que j'ai nommé mon tableau (avec les titres) "DATA" et que je veux trier les données sur A6/B6/C6 Merci pour votre aide Domi
Sub Macro2() ' ' Macro2 Macro '
' Range("A6:I6").Select Range(Selection, Selection.End(xlDown)).Select ActiveWorkbook.Worksheets("LOGINS").Sort.SortFields.Clear ActiveWorkbook.Worksheets("LOGINS").Sort.SortFields.Add Key:=Range("A7:A102"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal ActiveWorkbook.Worksheets("LOGINS").Sort.SortFields.Add Key:=Range("B7:B102"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal ActiveWorkbook.Worksheets("LOGINS").Sort.SortFields.Add Key:=Range("C7:C102"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With ActiveWorkbook.Worksheets("LOGINS").Sort .SetRange Range("A6:I102") .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With End Sub