Problème avec le fonction rang (groupe)

Résolu
cjik1 Messages postés 276 Statut Membre -  
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   -
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.
A voir également:

3 réponses

gbinforme Messages postés 15481 Date d'inscription   Statut Contributeur Dernière intervention   4 730
 
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
Raymond PENTIER Messages postés 71849 Date d'inscription   Statut Contributeur Dernière intervention   17 386
 
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
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
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