Macro pour trier

Bonjour,

je cherche à faire une macro qui tri à partir de la dernière ligne (total) d'une matrice.

Mais je ne sais pas comment dans une macro introduire cette notion de dernière ligne.

Ainsi dans le fichier joint ma macro doit pouvoir s'appliquer sur l'onglet 1 où le tri se fait sur la 5ème et dernière ligne de la BD et sur l'onglet 2 où il doit se faire sur la 3ème et dernière ligne

https://www.excel-pratique.com/~files/doc/kmMXjClasseur1.xls

Avez vous une solution?

Merci

Bonjour Mattjol

Une macro de ce type doit pouvoir identifier le champ des valeurs à trier.

Si la présentation du fichier change, il est évident qu'elle sera inactive.

Une XL4 basée sur le fait que B1 est vide et le mot "Total" est en colonne A.

Fichier joint

https://www.excel-pratique.com/~files/doc/TriMacro3.xls

Cordialement,

Amadéus

Salut Amadéus,

je ne connais pas XL4.

je crois t'en avoir entendu parler comme étant de la programmation de macro en français.

pour ma part cette macro doit s'intégrer dans un code VBA et je ne sais pas si on peut faire la balance entre les 2 langages ...

en fait ma macro fait

Sub temp()

Range("C3:AH" & Range("AH65536").End(xlUp).Row).Select

Selection.Sort Key1:=Range("C21"), Order1:=xlDescending, Header:=xlGuess _

, OrderCustom:=1, MatchCase:=False, Orientation:=xlLeftToRight, _

DataOption1:=xlSortNormal

End Sub

Et je cherche à y remplacer le 21 dans Selection.Sort Key1:=Range("C21"), ... par un truc qui dise "dernière ligne de la matrice" ....

Re bonjour mattjol

Comme tu sais, ce n'est pas moi qui vais modifier ton code VBA, Jean Marie certainement, s'il passe par là.

Pour activer la macro XL4 depuis ton code VBA, tu peux essayer:

Application.OnEntry = ExecuteExcel4Macro("TriMacro3.XLS!TRILIGNE")

ou Application.Run.....

Cordialement,

Amadéus

Bonsoir

Essaye cette ligne, je ne peux tester, ce je dispose pas de la même version (DataOption, n' est pas reconnue).

Selection.Sort Key1:=Range("C+Range(Range("C65536").End(xlUp).Row)), Order1:=xlDescending, Header:=xlGuess _

, OrderCustom:=1, MatchCase:=False, Orientation:=xlLeftToRight, _

DataOption1:=xlSortNormal

@+Jean-Marie

PS : tu te trompes, je ne suis qu'un débutant en VBA

Malheureusement ça ne marche point

j'ai enlevé le " contenu dans

Range("C+Range(Range

car il générait une erreur de compilation mais même avec cette correction j'aboutis à un plantage de type 1004

Bonjour

arf, j'ai oublié un "

Selection.Sort Key1:=Range("C"+Range(Range("C65536").End(xlUp).Row)), Order1:=xlDescending, Header:=xlGuess _

, OrderCustom:=1, MatchCase:=False, Orientation:=xlLeftToRight, _

DataOption1:=xlSortNormal

@+Jean-Marie

toujours pas ... la méthode Range de l'objet a échoué

en fait la solution est :

Selection.Sort Key1:=Range("C" & Range("C65536").End(xlUp).Row)

Rechercher des sujets similaires à "macro trier"