Tri decroissant
Bonjour,
voici le tri croissant de la colonne A en vba :
Columns("A:A").Sort Key1:=Range("A1")comment ecrire un code qui indique un tri décroissant?
merci d'avance
Bonjour
Le Code que tu donnes est incomplet.
Pour avoir facilement, ce que tu souhaites, utilise l'enregistreur de macro.
Pour trier la colonne A, un exemple :
Sub TriCroissant()
Columns("A:A").Select
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End Sub
Sub TriDecroissant()
Columns("A:A").Select
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End SubCordialement
bonjour tout le monde
voila j'ai bricoler un code
je vous explique ce que j'essai de faire
j'ai un tableau en colonne D de taille 100 (en fait je prend un tableau de taille 100 a partir de la derniere ligne non vide du tableau) la derniere ligne est :
l = Worksheets("Feuil1").Cells(Rows.Count, 1).End(xlUp).Rowde la feuille ("feuil1") et je voudrai faire un tri decroissant de ce tableau dans ma macro ,puis ecrire à la cellule C40 de la feuille ("feuil2") l'avant dernier nombre plus petit du tableau trié:
voici un exemple supposons que dans ma feuille("feuil1") j'ai D=[0,4,-9,5,7]
je fait un tri decroissant la colonne D devient D=[7,5,4,0,-9] puis j'ecris en cellule C40 DE LA FEUILLE(feuil2) C40=0voici mon code:
Sub detemination_var()
Dim t() As Double
Dim k As Long
Dim z As Double
Dim e As Double
Dim l As Long
Dim j As Long
Dim temp As Double
Dim a As Long
Dim position_mini As Long
l = Worksheets("Feuil1").Cells(Rows.Count, 1).End(xlUp).Row
ReDim t(l - 100 To l)
For k = l To LBound(t) + 2 Step -1
'le point de départ se déclare a chaque tour,on considere provisoirement que t(k) est
'le plus petit élément
t(k) = Worksheets("Feuil1").Cells(k, 4).Value
position_mini = k
'on examine tous les éléments suivants:
For j = k - 1 To LBound(t) + 1 Step -1
t(j) = Worksheets("Feuil1").Cells(j, 4).Value
If t(j) < t(position_mini) Then
position_mini = j
End If
Next
'à ce endroit on sait maintenant ou est le plus petit élément,il ne reste
'plus qu'a effectuer la permutation.
temp = t(position_mini)
t(position_mini) = t(k)
t(k) = temp
'on a placé l'element numéro k,on passe à présent au suivant.
Next
'ecrire à la cellule C40 l'avant dernier nombre du tableau plus petit
Worksheets("Feul2").Cells(40, 3).Value = Worksheets("Feuil1").Cells(l - 1, 4).Value
End Subj'ai deux questions ,
1)dans la forme le code que j'ai ecris est-il correcte?
2) lorsque jessai de le faire tourné j'ai l'erreur suivante: "l'indice n'appartient pas a la selection"
dans les lignes ci-dessous:
t(j) = Worksheets("Feuil1").Cells(j, 4).Value
t(k) = Worksheets("Feuil1").Cells(k, 4).Value
t(position_mini) merci de votre aide