Bonjour,
Je maitrise mal la notion RANGE() CELLS()! J'ai développé une petite macro pour trier un tableau, celle ci fonctionne bien, mais je dois la reproduire une vingtaine de fois (tableaux toutes les 9 colonnes), j'ai donc opté pour une routine mais je me mélange les pédales entre les range() et cells() (erreur d"exécution 1004 la méthode range a échoué).
J'ai beau retirer, changer range en cells je n'y arrive pas.
Avez vous une idée?
Merci pour votre aide
Bonne soirée
Pascal
macro de départ:
Ma routine:
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 Sub CLST1P1() ' ' CLS TOUR1 POULE1 ' Application.ScreenUpdating = False Application.EnableEvents = False ' => désactive les événements Call DEpro Sheets("TOUR1").Select Range("D6:H9").Select Selection.Copy Range("D17").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Application.CutCopyMode = False Range("D17:H20").Sort key1:=Range("E17"), key2:=Range("H17"), key3:=Range("F17"), order1:=xlDescending, Header:=xlYes Range("E17:H20").ClearContents Range("F13").Select Application.EnableEvents = True ' => désactive les événements End Sub
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 Sub CLST1() ' ' CLS TOUR1 POULE1 ' Application.ScreenUpdating = False Application.EnableEvents = False ' => désactive les événements Call DEpro ''''''''''''''''''''''''''''''''''''''''' Dim I As Integer Dim L1 As Integer L1 = 4 Sheets("TOUR1").Select For I = 1 To 10 Range(Cells(6, L1), Cells(9, L1 + 4)).Select Selection.Copy Cells(17, L1).Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Application.CutCopyMode = False Range(Cells(17, L1), Cells(20, L1 + 4)).Sort key1:=RANGE(Cells(17, L1 + 1)), key2:=Range(Cells(17, L1 + 4)), key3:=Range(Cells(17, L1 + 2)), order1:=xlDescending, Header:=xlYes Range(Cells(17, L1 + 1), Cells(20, L1 + 4)).ClearContents Cells(13, L1 + 2).Select L1 = L1 + 9 Next End Sub
Partager