XL 2016 VBA-Extraction des x plus grandes données sur tableau

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Zhanties

XLDnaute Nouveau
Bonjour,

tout d'abord, merci à ceux qui tenteront de m'aider sur ce cas.
Jeune stagiaire, on m'a confié un rôle sur vba et comme surement 99% des posts, j'ai des difficultés sur ma réalisation.
Voici donc la description du projet :

sur une feuille data de mon Excel, je dispose de d'un large tableau de donnée comprenant des variations (+0,1% ; -5,2% ; +62% etc.) avec 2 données correspondantes : des noms et des dates.
J'ai ainsi de la colonne B1 à NZ1 des noms puis en ligne commençant de A2 à A4573 des dates.

Le but serait de lire chaque cellule de chaque colonnes de chaque lignes 1 à 1 afin d'y extraire les 50 plus grandes variations ainsi que les 50 plus petites variations. Celles-ci seraient misent dans 2 tableaux distincts (un pour les plus grands, un pour les plus petits) comprenant la valeur de la variation, sa date et son nom.

Le code remplirait donc le tableau avec les 50 premières valeurs lus, puis à la 51eme lu, si celle-ci est plus grandes que la dernière valeur des plus grandes, alors elle l'a remplacerait (même chose pour le tableau des valeurs plus petites).


J'ai à travers mes recherches trouvés quelqu'un ayant montré comment lire colonne par colonne d'une ligne puis passer à la suivante avec cette façon :

Sub For_Next_Plage()
Dim FL1 As Worksheet, Cell As Range, NoCol As Integer, NoLig As Long
Dim DerLig As Long, DerCol As Integer, Var As Variant

Set FL1 = Worksheets("Feuil2")

'Détermine la dernière ligne renseignée de la feuille de calculs
DerLig = Split(FL1.UsedRange.Address, "$")(4)

'Détermine la dernière colonne renseignée de la feuille de calculs
DerCol = Columns(Split(FL1.UsedRange.Address, "$")(3)).Column

For NoLig = 1 To DerLig
For NoCol = 1 To DerCol
Var = FL1.Cells(NoLig, NoCol)
Next
Next

End Sub



cependant je n'ai donc pas réussi à effectuer tous le reste du projet expliqué juste avant, bien que je me doute qu'il faille ajouter une autre boucle de calcul avec peut être for ou while.

Merci de votre retour et de toutes questions si je dois détailler plus.
 

Pièces jointes

Bonjour Zhanties,

Un essai dans le fichier joint. Le principe :
  • éclater le tableau source sur la seconde feuille dans les colonnes B,C et D (date, titre et variation).
  • trier les colonnes B à D (D en ordre descendant puis C puis D)
  • ne retenir que les 50 premières plus grandes variations
  • Idem pour les plus petites variations (mais tri en ordre ascendant sur la colonne J)
La méthode ne gère pas les ex-æquo (qu'il semble ne pas y avoir).
.
 

Pièces jointes

Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
503
Réponses
7
Affichages
547
Retour