Problème avec le fonction rang (groupe)
Résolu
cjik1
Messages postés
233
Date d'inscription
Statut
Membre
Dernière intervention
-
michel_m Messages postés 18903 Date d'inscription Statut Contributeur Dernière intervention -
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.
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
-
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... -
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" ?
-
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