Macro Tri_Range().Sort

victorinox

XLDnaute Junior
Bonjour à tous,

Besoin d'un coup de pouce pour insérer une macro tri dans un fichier de reporting.
J'avais essayé avec ce code, trouvé sur ce même forum :

Private Sub Worksheet_Change(ByVal Target As Range)
Worksheets("Feuil1").Range("").Sort _
key1:=Worksheets("Feuil1").Range(""), _
Order1:=xlDescending, Header:=xlGuess

mai, je n'arrive pas à modifier le code correctement pour que cela modifie plusieurs plages dans la même feuille (ex: des tableaux en dessous les uns des autres)

Fichier joint pour y voir plus clair :)

Merci d'avance,


Victorinox
 

Pièces jointes

  • Test.xls
    38.5 KB · Affichages: 61
  • Test.xls
    38.5 KB · Affichages: 62
  • Test.xls
    38.5 KB · Affichages: 65

victorinox

XLDnaute Junior
Re : Macro Tri_Range().Sort

Re,

La macro fonctionne, mais uniquement si je n'ai pas d'écart = celulle vide entre les données. Dans mon cas, cela ne fonctionne pas car je souhaite trier chaque journée à part entière... (lundi ; mardi de façon indépendante)

Voici le code initial de kjin que j'ai tenté d'adapter dans le fichier de base:
Sub Macro1()
dl = Range("E6500").End(xlUp).Row
x = 1
Do
y = Range("E" & x).End(xlDown).Row
Set plg = Range("E" & x & ":G" & y)
plg.Sort Key1:=Range("G" & x), Order1:=xlDescending
x = y + 2
Loop Until x > dl
End Sub

Etant débutant en macro, je sollicite de nouveau vos connaissances, merci d'avance,


Victorinox
 

klin89

XLDnaute Accro
Re : Macro Tri_Range().Sort

re victorinox

En s'appuyant sur l'exemple de kjin :
A tester

VB:
Sub Macro1()
dl = Range("E65536").End(xlUp).Row
x = 4
Do
   y = Range("E" & x).End(xlDown).Row
   z = Range("E" & y).End(xlDown).Row
   v = z - y
   Set plg = Range("E" & x & ":G" & y)
   plg.Sort Key1:=Range("G" & x), Order1:=xlDescending, Header:=xlYes
   x = y + v
Loop Until x > dl
End Sub

Klin89
 

Membres actuellement en ligne

Statistiques des forums

Discussions
312 453
Messages
2 088 551
Membres
103 881
dernier inscrit
malbousquet