Je souhaitrais g=E9n=E9rer un bout de code qui trie de mani=E8re croissante=
les donn=E9es de la colonne A d'une table. Les donn=E9es des colonnes B,C,=
D, doivent bien sure suivre le mouvement. (A noter qu'au d=E9part il y a de=
s lignes blanches entre les enregistrements, ces lignes blanches (non rense=
ign=E9es) naturellement disparaissent =E0 l'issue du tri)
Je travaille essentiellement avec l'enregistreur de macro pour g=E9n=E9rer =
du code et il se trouve que le code g=E9n=E9r=E9 fait r=E9f=E9rence au nom =
de la feuille sur laquelle je travaille et moi je souhaiterais un code neut=
re que je puisse utiliser sur des feuilles ayant un autre nom que "TEST T1"=
en l'occurrence.
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
DanielCo
Bonjour,
[A:D].Sort [A1], xlAscending, Header:=xlNo
Pas besoin de chercher plus loin, sauf si ta feuille est protégée et le tri autorisé.
Cordialement. Daniel
Bonjour à tous,
Je souhaitrais générer un bout de code qui trie de manière croissante les données de la colonne A d'une table. Les données des colonnes B,C,D, doivent bien sure suivre le mouvement. (A noter qu'au départ il y a des lignes blanches entre les enregistrements, ces lignes blanches (non renseignées) naturellement disparaissent à l'issue du tri)
Je travaille essentiellement avec l'enregistreur de macro pour générer du code et il se trouve que le code généré fait référence au nom de la feuille sur laquelle je travaille et moi je souhaiterais un code neutre que je puisse utiliser sur des feuilles ayant un autre nom que "TEST T1" en l'occurrence.
Voilà le code généré:
Columns("A:A").Select ActiveWorkbook.Worksheets("TEST T1").Sort.SortFields.Clear ActiveWorkbook.Worksheets("TEST T1").Sort.SortFields.Add Key:=Range("A1"), _ SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With ActiveWorkbook.Worksheets("TEST T1").Sort .SetRange Range("A1:A752") .Header = xlNo .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With
Quelqu'un pourrait-il me dire comment s'y prendre ?
Merci d'avance - Cpt Pampers
Bonjour,
[A:D].Sort [A1], xlAscending, Header:=xlNo
Pas besoin de chercher plus loin, sauf si ta feuille est protégée et le
tri autorisé.
Cordialement.
Daniel
Bonjour à tous,
Je souhaitrais générer un bout de code qui trie de manière croissante les
données de la colonne A d'une table. Les données des colonnes B,C,D, doivent
bien sure suivre le mouvement. (A noter qu'au départ il y a des lignes
blanches entre les enregistrements, ces lignes blanches (non renseignées)
naturellement disparaissent à l'issue du tri)
Je travaille essentiellement avec l'enregistreur de macro pour générer du
code et il se trouve que le code généré fait référence au nom de la feuille
sur laquelle je travaille et moi je souhaiterais un code neutre que je puisse
utiliser sur des feuilles ayant un autre nom que "TEST T1" en l'occurrence.
Voilà le code généré:
Columns("A:A").Select
ActiveWorkbook.Worksheets("TEST T1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("TEST T1").Sort.SortFields.Add
Key:=Range("A1"), _ SortOn:=xlSortOnValues, Order:=xlAscending,
DataOption:=xlSortNormal With ActiveWorkbook.Worksheets("TEST T1").Sort
.SetRange Range("A1:A752")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Quelqu'un pourrait-il me dire comment s'y prendre ?
Pas besoin de chercher plus loin, sauf si ta feuille est protégée et le tri autorisé.
Cordialement. Daniel
Bonjour à tous,
Je souhaitrais générer un bout de code qui trie de manière croissante les données de la colonne A d'une table. Les données des colonnes B,C,D, doivent bien sure suivre le mouvement. (A noter qu'au départ il y a des lignes blanches entre les enregistrements, ces lignes blanches (non renseignées) naturellement disparaissent à l'issue du tri)
Je travaille essentiellement avec l'enregistreur de macro pour générer du code et il se trouve que le code généré fait référence au nom de la feuille sur laquelle je travaille et moi je souhaiterais un code neutre que je puisse utiliser sur des feuilles ayant un autre nom que "TEST T1" en l'occurrence.
Voilà le code généré:
Columns("A:A").Select ActiveWorkbook.Worksheets("TEST T1").Sort.SortFields.Clear ActiveWorkbook.Worksheets("TEST T1").Sort.SortFields.Add Key:=Range("A1"), _ SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With ActiveWorkbook.Worksheets("TEST T1").Sort .SetRange Range("A1:A752") .Header = xlNo .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With
Quelqu'un pourrait-il me dire comment s'y prendre ?
Merci d'avance - Cpt Pampers
MichD
Bonjour,
Voici un exemple de code pour trier la colonne B de la feuille active avec une plage "A:D" Cette procédure est valide pour chacune des feuille du classeur où est copiée la macro.
Sub test() Dim DerLig As Long With ThisWorkbook With .ActiveSheet 'Si la feuille n'est pas vide If Not IsEmpty(.UsedRange) Then 'Avec la plage A:D With .Range("A:D") 'Trouve la dernière ligne occupé pour les colonnes 'de A à D DerLig = .Find(What:="*", _ LookIn:=xlFormulas, _ SearchOrder:=xlByRows, _ SearchDirection:=xlPrevious).Row End With With .Range("A1:D" & DerLig) 'Tri croissant sur la colonne B de la plage A:D 'Item(1,1) : 1 = Ligne, 1 la colonne .Sort Key1:=.Item(1, 1), Order1:=xlAscending, Header:=xlYes End With End If End With End With End Sub
Voici un exemple de code pour trier la colonne B de la feuille active avec une plage "A:D"
Cette procédure est valide pour chacune des feuille du classeur où est copiée la macro.
Sub test()
Dim DerLig As Long
With ThisWorkbook
With .ActiveSheet
'Si la feuille n'est pas vide
If Not IsEmpty(.UsedRange) Then
'Avec la plage A:D
With .Range("A:D")
'Trouve la dernière ligne occupé pour les colonnes
'de A à D
DerLig = .Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
End With
With .Range("A1:D" & DerLig)
'Tri croissant sur la colonne B de la plage A:D
'Item(1,1) : 1 = Ligne, 1 la colonne
.Sort Key1:=.Item(1, 1), Order1:=xlAscending, Header:=xlYes
End With
End If
End With
End With
End Sub
Voici un exemple de code pour trier la colonne B de la feuille active avec une plage "A:D" Cette procédure est valide pour chacune des feuille du classeur où est copiée la macro.
Sub test() Dim DerLig As Long With ThisWorkbook With .ActiveSheet 'Si la feuille n'est pas vide If Not IsEmpty(.UsedRange) Then 'Avec la plage A:D With .Range("A:D") 'Trouve la dernière ligne occupé pour les colonnes 'de A à D DerLig = .Find(What:="*", _ LookIn:=xlFormulas, _ SearchOrder:=xlByRows, _ SearchDirection:=xlPrevious).Row End With With .Range("A1:D" & DerLig) 'Tri croissant sur la colonne B de la plage A:D 'Item(1,1) : 1 = Ligne, 1 la colonne .Sort Key1:=.Item(1, 1), Order1:=xlAscending, Header:=xlYes End With End If End With End With End Sub
Merci beaucoup pour ces deux réponses. Celle de Daniel est suffisante, et celle de Denis je la garde en mémoire elle me sera peut-être un jour u tile si je dois trier sur des données situées au centre de la table.
Merci encore et bonne soirée - Cpt Pampers
Bonjour,
Merci beaucoup pour ces deux réponses. Celle de Daniel est suffisante, et celle de Denis je la garde en mémoire elle me sera peut-être un jour u tile si je dois trier sur des données situées au centre de la table.
Merci beaucoup pour ces deux réponses. Celle de Daniel est suffisante, et celle de Denis je la garde en mémoire elle me sera peut-être un jour u tile si je dois trier sur des données situées au centre de la table.