Bonjour.
Pourquoi diable, alors que vous dites ne pas vouloir sélectionner la feuille, avez vous ensuite une instruction Sheets("Suivi SAMSO").Select, de toute façon inutile pour l'obtention du résultat ?
Faut pas laisser tout ce que l'enregistreur de macro met d'inutile !
Mais je viens de comprendre ce qui vous embarrasse: si vous ne spécifiez pas d'expression Worksheet devant Cells(… il assume la feuille active. Ce n'est pas une raison pour la sélectionner. Faites donc comme ça par exemple :
VB:
Dim Wsh as Worksheet, L as Long
Set Wsh = Worksheets("Suivi SAMSO")
L = Wsh.Range("A65536").End(xlUp).Row
Wsh.Range(Wsh.Cells(9, 1), Wsh.Cells(L, 29)).Sort key1:=Wsh.Range("D9"), order1:=xlAscending, Header:=xlYes
Bonjour.
Pourquoi diable, alors que vous dites ne pas vouloir sélectionner la feuille, avez vous ensuite une instruction Sheets("Suivi SAMSO").Select, de toute façon inutile pour l'obtention du résultat ?
Faut pas laisser tout ce que l'enregistreur de macro met d'inutile !
Mais je viens de comprendre ce qui vous embarrasse: si vous ne spécifiez pas d'expression Worksheet devant Cells(… il assume la feuille active. Ce n'est pas une raison pour la sélectionner. Faites donc comme ça par exemple :
VB:
Dim Wsh as Worksheet, L as Long
Set Wsh = Worksheets("Suivi SAMSO")
L = Wsh.Range("A65536").End(xlUp).Row
Wsh.Range(Wsh.Cells(9, 1), Wsh.Cells(L, 29)).Sort key1:=Wsh.Range("D9"), order1:=xlAscending, Header:=xlYes
Moi, j'aurais plus tendance à faire :
VB:
Dim Wsh as Worksheet, Rng As Range
Set Wsh = Worksheets("Suivi SAMSO")
Set Rng = Wsh.[A9].Resize(Wsh.[A1000000].End(xlUp).Row - 8), 29)
Rng.Sort key1:=Rng.Columns("D"), order1:=xlAscending, Header:=xlYes
Bonjour.
Pourquoi diable, alors que vous dites ne pas vouloir sélectionner la feuille, avez vous ensuite une instruction Sheets("Suivi SAMSO").Select, de toute façon inutile pour l'obtention du résultat ?
Faut pas laisser tout ce que l'enregistreur de macro met d'inutile !
Mais je viens de comprendre ce qui vous embarrasse: si vous ne spécifiez pas d'expression Worksheet devant Cells(… il assume la feuille active. Ce n'est pas une raison pour la sélectionner. Faites donc comme ça par exemple :
VB:
Dim Wsh as Worksheet, L as Long
Set Wsh = Worksheets("Suivi SAMSO")
L = Wsh.Range("A65536").End(xlUp).Row
Wsh.Range(Wsh.Cells(9, 1), Wsh.Cells(L, 29)).Sort key1:=Wsh.Range("D9"), order1:=xlAscending, Header:=xlYes
Moi, j'aurais plus tendance à faire :
VB:
Dim Wsh as Worksheet, Rng As Range
Set Wsh = Worksheets("Suivi SAMSO")
Set Rng = Wsh.[A9].Resize(Wsh.[A1000000].End(xlUp).Row - 8), 29)
Rng.Sort key1:=Rng.Columns("D"), order1:=xlAscending, Header:=xlYes