Tri en vba

frc -  
f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   -
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

  1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

    les 10 meilleures C'est quoi pour vous les 10 meilleurs ?????
    0
    1. frc
       
      les 10 meilleures sont les 10 valeurs les plus fortes
      0
      1. frc > frc
         
        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
    2. ccm81 Messages postés 11033 Statut Membre 2 434
       
      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
      1. frc > ccm81 Messages postés 11033 Statut Membre
         
        merci , c'est vu

        Meilleures salutations
        0
  2. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    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
  3. ccm81 Messages postés 11033 Statut Membre 2 434
     
    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
    1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      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