Je ne suis pas une experte en conception de macro mais je me d=E9brouille p=
our mes besoins. J'ai un PB avec la macro suivante :
Range("A1").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
ActiveWorkbook.Worksheets("BD - H=E9bergement").AutoFilter.Sort.SortFie=
lds._
Clear
ActiveWorkbook.Worksheets("BD - H=E9bergement").AutoFilter.Sort.SortFie=
lds.Add _
Key:=3DRange("A1"), SortOn:=3DxlSortOnValues, Order:=3DxlAscending,=
DataOption _
:=3DxlSortTextAsNumbers
With ActiveWorkbook.Worksheets("BD - H=E9bergement").AutoFilter.Sort
.Header =3D xlYes
.MatchCase =3D False
.Orientation =3D xlTopToBottom
.SortMethod =3D xlPinYin
.Apply
End With
Range("A1").Select
End Sub
En fait, j'ai une feuille dont le contenu change r=E9guli=E8rement mais pou=
r laquelle je veux toujours trier =E0 partir de la colonne A. Cette macro f=
onctionne super bien mais je voudrais pouvoir l'utiliser avec d'autres feui=
lles. Le PB est que cette macro s'applique sp=E9cifiquement sur la feuille =
BD - H=E9bergement. Comment je peux la modifier pour qu'elle s'applique sur=
la feuille active, peu importe la feuille, tout simplement.
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
MichD
Bonjour,
Copie la procédure suivante dans le THISWORKBOOK du projetVBA de ton classeur :
À chaque fois que tu vas modifier une cellule dans la colonne A:A de chaque feuille de calcul du classeur, un tri sera effectué sur cette colonne automatiquement en tenant compte de l'ensemble du tableau des données.
'---------------------------------- Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) Dim Rg As Range Set Rg = Intersect(Target, Range("A:A")) If Not Rg Is Nothing Then With Range("A1:A" & Range("A65536").End(xlUp).Row).CurrentRegion .Range("A1").Sort Key1:=.Item(1, 1), _ order1:=xlAscending, Header:=xlYes, _ Orientation:=xlTopToBottom, DataOption1:=xlSortNormal End With End If End Sub '----------------------------------
Copie la procédure suivante dans le THISWORKBOOK du
projetVBA de ton classeur :
À chaque fois que tu vas modifier une cellule dans la colonne A:A
de chaque feuille de calcul du classeur, un tri sera effectué sur cette
colonne automatiquement en tenant compte de l'ensemble du
tableau des données.
'----------------------------------
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim Rg As Range
Set Rg = Intersect(Target, Range("A:A"))
If Not Rg Is Nothing Then
With Range("A1:A" & Range("A65536").End(xlUp).Row).CurrentRegion
.Range("A1").Sort Key1:=.Item(1, 1), _
order1:=xlAscending, Header:=xlYes, _
Orientation:=xlTopToBottom, DataOption1:=xlSortNormal
End With
End If
End Sub
'----------------------------------
Copie la procédure suivante dans le THISWORKBOOK du projetVBA de ton classeur :
À chaque fois que tu vas modifier une cellule dans la colonne A:A de chaque feuille de calcul du classeur, un tri sera effectué sur cette colonne automatiquement en tenant compte de l'ensemble du tableau des données.
'---------------------------------- Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) Dim Rg As Range Set Rg = Intersect(Target, Range("A:A")) If Not Rg Is Nothing Then With Range("A1:A" & Range("A65536").End(xlUp).Row).CurrentRegion .Range("A1").Sort Key1:=.Item(1, 1), _ order1:=xlAscending, Header:=xlYes, _ Orientation:=xlTopToBottom, DataOption1:=xlSortNormal End With End If End Sub '----------------------------------
Merci pour la réponse mais je ne veux pas utiliser le Thisworkbook. Je ve ux pouvoir exécuter ma macro sur commande. C'est une macro qui contient u ne série d'actions dont le tri, donc le Thisworkbook n'est pas appropri é à mon besoin.
Elle fonctionne super bien mais en fait, je voudrais savoir comment écrir e cette macro en n'utilisant pas le nom de la feuille mais en indiquant d'u tiliser la feuille active. Est-ce possible ?
Range("A1").Select Range(Selection, Selection.End(xlToRight)).Select Range(Selection, Selection.End(xlDown)).Select ActiveWorkbook.Worksheets("BD - Hébergement").AutoFilter.Sort.SortFie lds._ Clear ActiveWorkbook.Worksheets("BD - Hébergement").AutoFilter.Sort.SortFie lds.Add _ Key:=Range("A1"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption _ :=xlSortTextAsNumbers With ActiveWorkbook.Worksheets("BD - Hébergement").AutoFilter.Sort .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With Range("A1").Select End Sub
Merci beaucoup !
Bonjour,
Merci pour la réponse mais je ne veux pas utiliser le Thisworkbook. Je ve ux pouvoir exécuter ma macro sur commande. C'est une macro qui contient u ne série d'actions dont le tri, donc le Thisworkbook n'est pas appropri é à mon besoin.
Elle fonctionne super bien mais en fait, je voudrais savoir comment écrir e cette macro en n'utilisant pas le nom de la feuille mais en indiquant d'u tiliser la feuille active. Est-ce possible ?
Range("A1").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
ActiveWorkbook.Worksheets("BD - Hébergement").AutoFilter.Sort.SortFie lds._
Clear
ActiveWorkbook.Worksheets("BD - Hébergement").AutoFilter.Sort.SortFie lds.Add _
Key:=Range("A1"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption _
:=xlSortTextAsNumbers
With ActiveWorkbook.Worksheets("BD - Hébergement").AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("A1").Select
End Sub
Merci pour la réponse mais je ne veux pas utiliser le Thisworkbook. Je ve ux pouvoir exécuter ma macro sur commande. C'est une macro qui contient u ne série d'actions dont le tri, donc le Thisworkbook n'est pas appropri é à mon besoin.
Elle fonctionne super bien mais en fait, je voudrais savoir comment écrir e cette macro en n'utilisant pas le nom de la feuille mais en indiquant d'u tiliser la feuille active. Est-ce possible ?
Range("A1").Select Range(Selection, Selection.End(xlToRight)).Select Range(Selection, Selection.End(xlDown)).Select ActiveWorkbook.Worksheets("BD - Hébergement").AutoFilter.Sort.SortFie lds._ Clear ActiveWorkbook.Worksheets("BD - Hébergement").AutoFilter.Sort.SortFie lds.Add _ Key:=Range("A1"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption _ :=xlSortTextAsNumbers With ActiveWorkbook.Worksheets("BD - Hébergement").AutoFilter.Sort .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With Range("A1").Select End Sub