Macro et sélection onglet
B
Bonjour,
J'ai créé une petit macro en vue de trier un tableau de manière automatisée.
Problème: depuis la dernière version d'Excel, la macro ne s'applique qu'à l'onglet sélectionné au moment de l'enregistrement de la macro.
Je voudrais changer cela en modifiant le code, mais n'y connaissant rien, je fais appel à l'équipe Excel-Pratique.
Dans mon cas, l'onglet sélectionné à l'enregistrement était "trim1".
Objectif: que la macro s'applique dans l'onglet activé au moment où je lance la macro.
Que faut-il changer?
Merci
Sub TriDate()
'
' TriDate Macro
'
'
Range("E50:L89").Select
ActiveWorkbook.Worksheets("trim1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("trim1").Sort.SortFields.Add Key:=Range("J50:J89") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("trim1").Sort.SortFields.Add Key:=Range("I50:I89") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("trim1").Sort
.SetRange Range("E50:L89")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("J49").Select
End Sub
G
Bonjour,
Si j'ai bien compris vous souhaitez que la macro fonctionne dans l'onglet dans lequel vous êtes actuellement ?
Si c'est le cas : essayez le code suivant :
Sub TriDate()
'
' TriDate Macro
'
'
Range("E50:L89").Select
ActiveWorkbook.ActiveSheet.Sort.SortFields.Clear
ActiveWorkbook.ActiveSheet.Sort.SortFields.Add Key:=Range("J50:J89") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
ActiveWorkbook.ActiveSheet.Sort.SortFields.Add Key:=Range("I50:I89") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.ActiveSheet.Sort
.SetRange Range("E50:L89")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("J49").Select
End Sub
B
Merci, ça marche.