XL 2013 report de données avec classement décroissant

Lo33

XLDnaute Nouveau
Bonjour à tous,

Après des jours de vaines recherches, je baisse les bras, et je poste aujourd'hui mon problème.

Je souhaite reporter des données dans un tableau à partir d'une liste déroulante (année). Mais j'ai besoin que les données soient classées par ordre décroissant de la colonne C.
Je joins un fichier test:

- Onglet VR : ensemble des données. J'ai créé une formule en colonne A pour générer un "index" en fonction de la sélection de la liste déroulante en onglet Feuil2 => =SI($B2=Feuil2!$B$2;SI(NB.SI.ENS($B$1:B1;B2;$C$1:C1;C2)>0;"";MAX($A$1:A1)+1);"")

- Onglet Feuil2: report des données
C'est là que cela coince.... je ne parviens pas à faire en sorte que les produits apparaissent classés par ordre décroissant des valeurs de la colonne C (Qté tonnes libres)
J'ai tenté de créer un autre index (colonne F dans l'onglet VR) en essayant de générer un classement mais le rang se calcule sur l'ensemble de la colonne D alors que j'ai besoin qu'il ne se fasse que sur les valeurs concernés,

Merci d'avance pour votre aide !
 

Pièces jointes

  • test.xlsx
    37.1 KB · Affichages: 16
Solution
Bonsoir Lo,
C'était pas vraiment une bonne idée de mettre les tonnes bloquées avec des nombres aléatoires. Je ne comprenais pas pourquoi mes résultats n'arrêtaient pas de changer. 😢

En PJ un essai en trichant un peu. Si le tonnage est nul mais que le produit existe je rajoute 300 grammes. Ainsi il passe le filtre.
A teste.

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Lo,
Vous ne pouvez pas faire ce genre de tri car les cellules contiennent des formules.
Une fois triée, par exemple la formule :
Code:
=SIERREUR(INDEX(VR!$B:$D;EQUIV(LIGNE(A21);VR!$A:$A;0);2);"")
qui serait positionnée en première deviendrait :
Code:
=SIERREUR(INDEX(VR!$B:$D;EQUIV(LIGNE(A1);VR!$A:$A;0);2);"")
puis recalculée, et vous retrouvez vos valeurs initiales.
Utilisez :
Code:
[CODE]=SIERREUR(INDEX(VR!$B:$D;EQUIV(LIGNE($A$21);VR!$A:$A;0);2);"")
[/CODE]
mais il faut changer à la min chaque formule. Voir PJ.
Ou alors passer par du VBA.
 

Pièces jointes

  • test (11).xlsx
    36.8 KB · Affichages: 6

Robert

XLDnaute Barbatruc
Repose en paix
Bonjour Lo et bienvenu, bonjour le forum,

Par formule je ne sais pas faire. Si une proposition VBA t'intéresse, ton fichier modifié en pièce jointe.

[Édition]
Bonjour Sylvanu, nos posts se sont croisés...
 

Pièces jointes

  • Lo_ED_v01.xlsm
    46.7 KB · Affichages: 4

Lo33

XLDnaute Nouveau
Merci pour vos réponses.
Malheureusement je n'y connais rien en VBA, mis à part l'utilisation de la combobox.

N'est-il pas possible d'utiliser une toute autre formule en Feuil2, colonne B, permettant de sélectionner et ordonner les données tel que je le souhaite? Incluant si nécessaire de travailler la formule en VR, colonne A, de façon différente?
Je me demandais si justement je ne m'étais pas trompée dans mon raisonnement dès le départ, pour me retrouver coincer sur l'ordre final que je veux appliquer aux données.

Merci encore
 

Lo33

XLDnaute Nouveau
Re,

Dans uns autre forum ma signature est : VBA m'éclate, les formules m'ennuient. Je n'y peux rien, c'est comme ça...
Désolé...
Le fichier que vous m’avez proposé était exactement ce que je cherche à faire 😊 mais malheureusement je ne sais pas faire. Quoi qu’il en soit, merci beaucoup d’avoir pris le temps ! Qui sait, peut être un jour je me mettrai à VBA !!
 

Lo33

XLDnaute Nouveau
Bonjour à tous,
Me revoilà de nouveau bloquée, et dépitée parce que je n'arrive pas à trouver ma solution toute seule... Bref, j'ai besoin d'aide.
Je poste ce message à la suite des précédents parce qu'il s'agit d'une suite sur le même sujet, et qu'avoir l'historique des messages me semble pertinent pour ceux qui voudront bien m'aider.

Pour mémo, il s'agit de reporter des données dans un tableau à partir d'une liste déroulante (année), avec classement par ordre décroissant de la colonne C. Ci joint un fichier Test.
- Onglet VR : ensemble des données.
- Onglet Feuil2: report des données, avec en colonnes F à H les formules qui me permettent de classer les données de la colonne C par ordre croissant.

Mon problème : j'ai maintenant de nouvelles valeurs à intégrer (Qté tonnes bloquées, feuil2, colonne I) que je dois faire apparaitre en colonne D (feuil2). Le classement par ordre croissant se faisant sur la colonne H (et il doit le rester), si la valeur en colonne H est égale à 0 mais que j'ai une valeur supérieure à 0 en colonne I, aucune valeur en D n'est reportée... Or il faudrait que 0 ou "" apparaisse en C, et qu'en colonne D soit reportée la valeur indiquée en colonne I (idéalement classée aussi par ordre croissant)

Voici la formule utilisée en colonne C, mais que je n'arrive à "moduler" :
=SI(INDEX($H$6:$H$150;EQUIV(MAX($F:$F)-LIGNE()+6;$F$6:$F$150;0))>=0,001;INDEX($H$6:$H$150;EQUIV(MAX($F:$F)-LIGNE()+6;$F$6:$F$150;0));"")

Est-ce que vous pouvez me donner un coup de main pour débrouiller ça?

Merci d'avance pour votre aide !
 

Pièces jointes

  • test V1.xlsx
    47.6 KB · Affichages: 5

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonsoir Lo,
C'était pas vraiment une bonne idée de mettre les tonnes bloquées avec des nombres aléatoires. Je ne comprenais pas pourquoi mes résultats n'arrêtaient pas de changer. 😢

En PJ un essai en trichant un peu. Si le tonnage est nul mais que le produit existe je rajoute 300 grammes. Ainsi il passe le filtre.
A teste.
 

Pièces jointes

  • test V1 (4).xlsx
    47.7 KB · Affichages: 7

Lo33

XLDnaute Nouveau
J'ai testé, et c'est nickel ! je n'aurai jamais pensé à faire un truc pareil (rajouter le 0,0003)
Bref, merci beaucoup Sylvanu ! et désolée pour les aleas entrebornes.... je n'ai pas réfléchi que cela pouvait impacter sur la suite... 😞
Je vais pouvoir continuer à avancer 🙂
 

Statistiques des forums

Discussions
312 149
Messages
2 085 772
Membres
102 970
dernier inscrit
JMaurice