Messieurs, bonjour,
Relativement débutant en VBA je dispose d'un outil qui m'affiche certains résultats sous une forme non triée, je voudrais en faire un tri selon le critère d'une moyenne pondérée entre des résultats à la hausse et à la baisse.
Mon programme va récupérer le nombre total de triplets à trier en A1 de la feuille Triplets symétrie..
La pondération à la hausse et à la baisse dans la feuille lancement
Puis me construit un tableau avec les moyennes pondérées par indicateur.
Une fois mon tableau trouvé je le trie par ordre décroissant.
Jusque là tout va bien, je voudrais par la suite trier mon tableau qui est sous une forme assez complèxe:
Je me dis qu'il faut faire du range.copy range.paste mais je n'arrive pas y débuter..
Pourriez vous m'aider ?
Ci joint mon code, un fichier de test et l'organisation du tri:
Merci pour votre aide.
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
40 Sub triermessymétries() Dim dernlig As Long Dim i As Long, j As Long Dim TauxHausse As Double, TauxBaisse As Double Dim tablo() As Double Total = Sheets("Triplets symetrie").Range("A1") ReDim tablo(1 To Total) As Double TauxHausse = Sheets("Lancement").Range("D44") TauxBaisse = Sheets("Lancement").Range("F44") With Sheets("Triplets symetrie") dernlig = .Range("k" & Rows.Count).End(xlUp).Row j = 1 For i = 7 To dernlig Step 8 'tablohausses(j) = .Range("L" & i) 'tablobaisses(j) = .Range("K" & i) tablo(j) = .Range("L" & i) * TauxHausse + .Range("K" & i) * TauxBaisse j = j + 1 Next i Do 'tri décroissant Valeur = 0 For i = 1 To UBound(tablo) - 1 If tablo(i) < tablo(i + 1) Then Cible = tablo(i) tablo(i) = tablo(i + 1) tablo(i + 1) = Cible Valeur = 1 End If Next i Loop While Valeur = 1 'vérification du tri décroissant For i = 1 To UBound(tablo) Debug.Print tablo(i) Next i End With End Sub
Bien à vous,
E
Partager