Titre du sujet : Tri de tableaux de longueurs variables sur différentes feuilles par GGlyon le 05/08/2009 13:50:49
Bonjour à tous,
voilà donc mon problème qui ne semble pas être présent dans l'un des forums :
à partir d'une feuille (Finances), je veux lancer une macro qui, entre autres, trie par dates des tableaux qui sont présents sur les autres feuilles du classeur. Ces tableaux n'ont pas une longuer fixe et seront amener à évoluer. Après de nombreux essais avec "Sort" qui me renvoyaient des erreur d'application ou d'objet(voir premier code), j'ai trouvé un code qui semblait marcher (voir deuxième code). Le problème est qu'il me modifie aussi ma feuille de départ et que je ne voudrais pas passer par une fontion "Activate".
Premier code (juste la partie concernée):
For i = 3 To ActiveWorkbook.Sheets.Count
For l = 4 To 69
If ActiveWorkbook.Sheets(i).Range("B9").Value <> "" And ActiveWorkbook.Sheets(i).Range("B9").Value = ThisWorkbook.Sheets("Finances").Range("E" & l).Value Then
'Recherche de la dernière cellule remplie pour les Factures
DerniereFacture = ActiveWorkbook.Sheets(i).Columns(28).Find("*", , , , , xlPrevious).Row
'Trier le tableau des factures par dates croissantes
ActiveWorkbook.Sheets(i).Range(Cells(154, 27), Cells(DerniereFacture, 35)).Select
Selection.Sort Key1:=Range("AA154"), Order1:=xlAscending
Deuxième code (juste la partie concernée) :
For i = 3 To ActiveWorkbook.Sheets.Count
For l = 4 To 69
If ActiveWorkbook.Sheets(i).Range("B9").Value <> "" And ActiveWorkbook.Sheets(i).Range("B9").Value = ThisWorkbook.Sheets("Finances").Range("E" & l).Value Then
'Recherche de la dernière cellule remplie pour les Factures
DerniereFacture = ActiveWorkbook.Sheets(i).Columns(28).Find("*", , , , , xlPrevious).Row
'Trier le tableau des factures par dates croissantes
ActiveWorkbook.Sheets(i).Activate
Range(Cells(154, 27), Cells(DerniereFacture, 35)).Sort Key1:=Range("AB154"), Order1:=xlAscending
ActiveWorkbook.Sheets("Finances").Activate
J'espère que mon explication est compréhensible et que j'ai mis assez d'informations pour que vous puissiez me répondre.
Cordialement,
Gaël
|