Problème avec le fonction rang (groupe)

Résolu
bonsoir;
dans Excel; j'ai 4 feuilles:
dans la feuil1 A5=15
feuil2: A5=11
Feuil3: A5= 8
feuil4: A5= 18
Prière, aidez-moi à trouver la fonction rang permettant de classer ces feuilles; c''est-à-dire que le rang doit être trouvé par rapport au groupe de feuil.
merci.
Configuration: Windows XP
Internet Explorer 6.0

3 réponses

  1. Contributeur
    bonjour

    En mettant cette formule sur la ligne 1 d'une feuille et en la tirant sur 4 lignes tu vas obtenir tes valeurs triées du plus grand au plus petit et en remplaçant GRANDE par PETITE tu l'as dans l'autre sens.
    =GRANDE.VALEUR(Feuil4:Feuil1!$A$5;LIGNE())

    Maintenant, je ne sais pas si c'est ce que tu espérais...
    0
    1. Contributeur
      Salut.
      Ce que tu veux est bizarre et très particulier. Je crains que seule une macro puisse y parvenir.
      Mais j'ai peut-être mal compris ! Que veux-tu dire exactement par "c'est-à-dire que le rang doit être trouvé par rapport au groupe de feuil" ?
      0
      1. Contributeur
        bonjour,

        cette macro range les feuilles d'un classeur (maxi feuilles=255)dans l'ordre décroissant de la valeur en A5 de chaque feuille

        Option Explicit
        Sub ranger()
        Dim tablo()
        Dim nbre As Byte, cptr As Byte, i As Byte, j As Byte, k As Byte
        Dim tmp0 As Double, tmp1 As String
        
        ' nombre de feuilles
        nbre = ThisWorkbook.Sheets.Count
        
        'construit un tableau 2 dimension au nombre de feuilles
        ReDim tablo(nbre - 1, 1)
        
        'remplit le tableau avec le nom des onglets et la valeur en A5
        Do Until cptr = nbre
            tablo(cptr, 0) = Sheets(cptr + 1).Range("A5").Value
            tablo(cptr, 1) = Sheets(cptr + 1).Name
            cptr = cptr + 1
        Loop
        
        'range le tableau dans l'ordre croissant de A5
        For i = 0 To nbre
                j = i
                For k = j + 1 To nbre - 1
                    If tablo(k, 0) <= tablo(j, 0) Then j = k
                Next k
            If i <> j Then
                tmp0 = tablo(j, 0)
                tmp1 = tablo(j, 1)
                tablo(j, 0) = tablo(i, 0)
                tablo(j, 1) = tablo(i, 1)
                tablo(i, 0) = tmp0
                tablo(i, 1) = tmp1
            End If
          Next i
          
          'fige défilement de l'écran
          Application.ScreenUpdating = False
          'range les feuilles dans l'ordre décroissant de A5
         cptr = 0
         For cptr = 0 To UBound(tablo)
            Sheets(tablo(cptr, 1)).Move before:=Sheets(1)
        Next
          
        End Sub

        0