Tri en vba

Fermé
frc - 29 mars 2015 à 15:52
f894009 Messages postés 17187 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 1 mai 2024 - 31 mars 2015 à 16:46
Bonjour,
J'ai une colonne excel de 50 valeurs (sans vide)
Sans toucher à cette colonne je désirerai par vba trier virtuellement les différentes valeurs de cette colonne puis d'en conserver , toujours sous vba les 10 meilleures .
De retour à la feuille excel , les cellules correspondantes à ces 10 meilleures valeurs seront alors simplement colorées mais la colonne conservera ses valeurs initiales dans l'ordre initial

J'ajoute qu'une boucle serait nécessaire pour un nombre x de colonnes car en fait j'en ai un certain nombre !
Merci pour votre aide


4 réponses

f894009 Messages postés 17187 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 1 mai 2024 1 704
30 mars 2015 à 14:14
Bonjour,

les 10 meilleures C'est quoi pour vous les 10 meilleurs ?????
0
les 10 meilleures sont les 10 valeurs les plus fortes
0
bonjour

je viens de recevoir votre rectification de code mais je n'avais pas reçu la première mouture ; pouvez vous me l'adresser ?

Merci
0
ccm81 Messages postés 10855 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 29 avril 2024 2 404
31 mars 2015 à 16:29
tu l'as
soit sur le lien de mon post #2 (ci dessous)
soit sur le lien du post de fs894009 du post #4
0
frc > ccm81 Messages postés 10855 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 29 avril 2024
31 mars 2015 à 16:32
merci , c'est vu

Meilleures salutations
0
ccm81 Messages postés 10855 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 29 avril 2024 2 404
30 mars 2015 à 15:07
Bonjour

Un exemple
https://www.cjoint.com/?3CEmx3lmHeF

Cdlmnt
0
f894009 Messages postés 17187 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 1 mai 2024 1 704
31 mars 2015 à 08:33
Bonjour,

un exemple avec code un peu plus complique que CCM81 (salut a toi) mais qui pourra vous servir quand vous avez beaucoup plus de donnees a trier dans un autre fichier. Vous pouvez aussi adapter le code de CCM81 pour colorier les 10 valeurs les plus hautes

https://www.cjoint.com/c/ECFiTBDbXEj
0
ccm81 Messages postés 10855 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 29 avril 2024 2 404
Modifié par ccm81 le 31/03/2015 à 16:06
Ah,
pour les 10 valeurs les plus "fortes" modifier comme la ligne soulignée
    For li = 1 To n
v = TS(n - li + 1)
For lili = 1 To nbli

Salut à f894009 en passant

Cdlmnt
0
f894009 Messages postés 17187 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 1 mai 2024 1 704
Modifié par f894009 le 31/03/2015 à 16:46
Re,

Voir plutot comme ceci vu que le tri reste ascendant:
x = UBound(TS)
    If x <= 10 Then
        Deb = 1
    Else
        Deb = x - n
    End If
    For li = x To Deb Step -1
      v = TS(li)
      For lili = 1 To nbli
        If plage.Cells(lili, 1) = v Then plage.Cells(lili, 1).Interior.ColorIndex = 6
      Next lili
    Next li
0