dianbobo
XLDnaute Junior
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 :
Code: Tout sélectionner
l = Worksheets("Feuil1").Cells(Rows.Count, 1).End(xlUp).Row
de 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:
j'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:
merci de votre aide
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 :
Code: Tout sélectionner
l = Worksheets("Feuil1").Cells(Rows.Count, 1).End(xlUp).Row
de 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:
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 Sub
j'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:
Code:
t(j) = Worksheets("Feuil1").Cells(j, 4).Value
t(k) = Worksheets("Feuil1").Cells(k, 4).Value
t(position_mini)