Bonjour,
je travaille actuellement sur l'automisation de la présentation de données triées suivants 3 critères :
la date (A) / le lieu (B)/ les horaires de début (C)
Pour le tri par date pas de soucis, les données qui sont importées sont déjà triées.
il faut ensuite que je trie les données, qui ont la même date, suivant le lieu .
Au final ça donne ceci :
A date B lieu C heure 13/04/15 chap. 20rd 10:00 13/04/15 chap. 20rd 14:00 13/04/15 garage 14:00 27/04/15 chap. 20rd 10:00 05/05/15 chap. 20rd 10:00
mon problème c'est que je ne vois pas comment récupérer mon range, y appliquer les filtres et ensuite reprendre la recherche pour une autre plage de données.
dans ma tête,
1 boucle sur tout le tableau "For i=9 to dernière ligne"
à l'intérieur une boucle qui va tester chaque ligne par rapport à la suivante suivant la date pour connaitre la 1ere et la dernière ligne qui ont la même date et sur lesquelles on va travailler
quand la date n'est plus la même cette boucle s'arrête et je réalise les instructions de tri sur la plage déterminée
ensuite je reprends (???) la boucle à la ligne suivante, c'est là que je vois pas comment on fait ?
j'ai essayé avec do while mais ça s'arrête pas, en faisant pas à pas. So help me please ! y'a peut être une autre méthodeb ou logique ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 Sub Tridonnees() Dim DernLigne As Long Dim dl As Long 'dernier ligne avec même date Dim cpt As Long 'compte le nombre de ligne de même date Dim i As Long 'réinitialise les variables dl = 8 cpt = 0 DernLigne = Feuil1.Range("B" & Rows.Count).End(xlUp).Row For i = 9 To DernLigne Do While Feuil1.Range("A" & i).Value = Feuil1.Range("A" & i + 1).Value dl = dl + 1 cpt = cpt + 1 Loop Feuil1.Range("B" & dl - cpt, "C" & dl).Select Next i 'macro enregistrée pour le tri 'Range("A9:F13").Select 'ActiveWorkbook.Worksheets("planning").Sort.SortFields.Clear 'ActiveWorkbook.Worksheets("planning").Sort.SortFields.Add Key:=Range("B9:B13" _ ), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal ' ActiveWorkbook.Worksheets("planning").Sort.SortFields.Add Key:=Range("C9:C13" _ ), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal ' With ActiveWorkbook.Worksheets("planning").Sort '.SetRange Range("A8:F13") '.Header = xlYes '.MatchCase = False '.Orientation = xlTopToBottom '.SortMethod = xlPinYin '.Apply ' End With End Sub
Partager