Bonjour,
Je fait de l'analyse de données avec excel et vba et à un moment donné j'ai une colonne avec 1500 valeurs. Je veux copier les 5 plus grandes valeurs dans l'ordre où elles apparaissent dans ma colonne.
J'ai deux méthodes :
1) J'utilise la fonction excel Grande.Valeur mais avec cette fonction je ne vois pas comment les avoir dans l'ordre chronologique.
Par exemple si ma colonne contient 10 valeurs comme celles ci :
3,7,9,2,0,4,21,2,9,5
je veux copier dans une autre colonne : 7,9,21,9,5 et dans cet ordre.
2) Mes 5 plus grandes valeurs sont dans des cellules colorées en rouge et je tente de les copier une par une dans une autre colonne mais ça ne marche pas ... d'accord je ne suis pas très fort en développement donc vous trouverez certainement d'où ça vient :
c=1
For m = 1 To 1500
If Range("M" & m).Interior.Color = 4 Then
Range("M" & m).Select
Selection.Copy
Range("N" & c).Select
ActiveSheet.Paste
c = c + 1
End If
Next m
Le truc c'est que comme je n'arrive pas à avoir l'ordre chronologique pour la première méthode j'essaie avec la deuxième actuellement, mais si vous savez comment le faire avec la première ça m'irait aussi très bien !
Merci d'avance tout le monde !
Aurélien.
Je fait de l'analyse de données avec excel et vba et à un moment donné j'ai une colonne avec 1500 valeurs. Je veux copier les 5 plus grandes valeurs dans l'ordre où elles apparaissent dans ma colonne.
J'ai deux méthodes :
1) J'utilise la fonction excel Grande.Valeur mais avec cette fonction je ne vois pas comment les avoir dans l'ordre chronologique.
Par exemple si ma colonne contient 10 valeurs comme celles ci :
3,7,9,2,0,4,21,2,9,5
je veux copier dans une autre colonne : 7,9,21,9,5 et dans cet ordre.
2) Mes 5 plus grandes valeurs sont dans des cellules colorées en rouge et je tente de les copier une par une dans une autre colonne mais ça ne marche pas ... d'accord je ne suis pas très fort en développement donc vous trouverez certainement d'où ça vient :
c=1
For m = 1 To 1500
If Range("M" & m).Interior.Color = 4 Then
Range("M" & m).Select
Selection.Copy
Range("N" & c).Select
ActiveSheet.Paste
c = c + 1
End If
Next m
Le truc c'est que comme je n'arrive pas à avoir l'ordre chronologique pour la première méthode j'essaie avec la deuxième actuellement, mais si vous savez comment le faire avec la première ça m'irait aussi très bien !
Merci d'avance tout le monde !
Aurélien.