Trier des feuilles excel selon un résultat. [Résolu/Fermé]

Signaler
Messages postés
12
Date d'inscription
samedi 14 mars 2009
Statut
Membre
Dernière intervention
19 avril 2017
-
Messages postés
12
Date d'inscription
samedi 14 mars 2009
Statut
Membre
Dernière intervention
19 avril 2017
-
Bonjour à tous,

J'ai un classeur excel de plusieurs feuilles avec des données :
Feuil1 : Cellule A6 [contient un résultat de calcul (exemple: 2000)] .
Feuil2 : Cellule A6 [contient un résultat de calcul (exemple: 3000)] .
Feuil3 : Cellule A6 [contient un résultat de calcul (exemple: 4000)] .
et ainsi de suite pour des dizaines de feuilles.
Et je veux faire un triage décroissant des feuilles selon le résultat .

J'espère que tout est claire.
Merci d'avance

3 réponses

Messages postés
9631
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
18 novembre 2020
1 965
Bonjour

Un essai via vba
https://www.cjoint.com/?3KysfVPcL7k

Lien modifié


Cdlmnt
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 76687 internautes nous ont dit merci ce mois-ci

Messages postés
12
Date d'inscription
samedi 14 mars 2009
Statut
Membre
Dernière intervention
19 avril 2017

@ ccm81,

Merci énormément, ça marche à merveille. Merci encore :)

Mais si c'est possible d'inverser le tri de "croissant" à "décroissant" !!!
et un grand merci d'avance @ccm81.
Messages postés
9631
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
18 novembre 2020
1 965
c'est ce qui est fait dans le lien modifié (j'avais lu un peu vite la question)
en fait pas grand chose à modifier
Call TriSel(tv, 1)
For nuf = nbf To 1 Step -1
Sheets(tv(nuf, 2)).Move after:=Sheets(nbf)
Next nuf

si c'est ok, penses à mettre le sujet à Résolu (en haut à droite de ton premier message)

Bonne soirée
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 76687 internautes nous ont dit merci ce mois-ci

Messages postés
12
Date d'inscription
samedi 14 mars 2009
Statut
Membre
Dernière intervention
19 avril 2017

Parfait.
Un grand Merci @ccm81.
Messages postés
1404
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
18 novembre 2020
144
Bonsoir le fil, bonsoir le forum,

Peut-être comme ça :
Option Base 1

Sub Macro2()
Dim NO As Byte 'déclare la variable NO (Nombre d'Onglets)
Dim I As Byte 'déclare la variable I (Incrément)
Dim TOS() 'déclare la variable TOS (Tableau des Onglets)
Dim J As Byte 'déclare la variable J (incrément)

NO = Sheets.Count 'définit le nombre d'onglets NO
ReDim TOS(NO, 2) 'redimensionne le tableau des onglets TOS (NO lignes, 2 colonnes)
For I = 1 To NO 'boucle sur tous les onglets
    TOS(I, 1) = I 'définit la valeur dans la colonne 1 du tableau TOS (le numéro de l'onglet)
    TOS(I, 2) = Sheets(I).Range("A6").Value 'définit la valeur dans la colonne 2 du tableau TOS (la valeur de A6 de l'onglet)
Next 'prochain onglet de la boucle
J = 1 'initialise la variable J
For I = 1 To UBound(TOS, 1) 'boucle sur toutes les lignes du tableau TOS
    'condition : si la valeur de la cellule A6 de l'onglet est la Jième plus petite valeur de la deuxième colonne du tableau TOS
    If TOS(I, 2) = Application.WorksheetFunction.Small(Application.Index(TOS, , 2), J) Then
        'place l'onglet devant l'onglet numéro J, incrémente J
        Sheets(TOS(I, 1)).Move before:=Sheets(J): J = J + 1
    End If 'fin de la condition
Next I 'prochaine ligne de la boucle
End Sub

1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 76687 internautes nous ont dit merci ce mois-ci

Messages postés
12
Date d'inscription
samedi 14 mars 2009
Statut
Membre
Dernière intervention
19 avril 2017

Merci @ThauTheme.
J'ai déjà utilisé la macro de ccm81 qui fonctionne bien aussi.
Très cordialement.