Tri VBA

Fermé
HINDNOR Messages postés 1 Date d'inscription mardi 26 novembre 2013 Statut Membre Dernière intervention 26 novembre 2013 - Modifié par pijaku le 26/11/2013 à 14:47
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 - 26 nov. 2013 à 21:21
Bonjour,
SVP je suis débutante en vba et j'ai des rendements à trier
le code que j'ai élaboré est comme suit mais je n'arrive tjs pas à trier mes rendemnets
si quelqu'un peut m'aider à trouver l'erreur

/contents/446-fichier-sub
Sub tri()
Dim n As Integer
Dim i As Integer
Dim j As Integer

Dim A(13) As Variant
Worksheets("feuil1").Activate

Range("A2:A10").Select

A(i) = Range("A" & i + 1)

For i = 2 To 10
For j = i + 1 To 10
If A(i) < A(j) Then
A(j) = A(i)
A(i) = Z
End If

Next j
Next i
End Sub


merci d'avance :)

1 réponse

Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 338
26 nov. 2013 à 21:21
bonjour
essayez ceci

Sub Tri()
Application.ScreenUpdating = False
Dim n As Integer
Dim i As Integer
Dim j As Integer

Worksheets("feuil1").Activate
n = Range("A2:A" & Cells(2, 1).End(xlDown).Row).Count
ReDim A(n + 1) As Variant
For k = 1 To n + 1
i = 2
Do While Not IsEmpty(Range("A" & i)) And i <= n + 1
A(i) = Range("A" & i)
For j = i + 1 To n + 1
A(j) = Range("A" & j)
If A(i) <= A(j) Then
GoTo J_suivant
Else
Range("A" & i) = A(j)
Range("A" & j) = A(i)
GoTo I_suivant
J_suivant:
End If
i = i + 1
Next j
I_suivant:
i = i + 1
Loop
Next k
End Sub

cdlt
0