Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

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

  • Excel d'exemple 1.xlsx
    4.9 MB · Affichages: 21

mapomme

XLDnaute Barbatruc
Supporter XLD
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

  • Zhanties- recherche gde petite valeurs- v1.xlsm
    788.1 KB · Affichages: 22
Dernière édition:

Zhanties

XLDnaute Nouveau
Bonjour,

le tableau synthétique a été rempli avec des valeurs alea qui ne correspondent pas du tout au data.
Je viens de les mettre à 0, je vous passe aussi se que j'ai tenté niveau code.
je regarde sur tu as fait mapomme (pas encore vu au moment où je répond)
 

Pièces jointes

  • Excel d'exemple 1.xlsm
    4.9 MB · Affichages: 23

Zhanties

XLDnaute Nouveau
C'est...exactement se que je voulais. Merci beaucoup.
pourrais-je te poser des questions en message privé sur le code que tu as fais?
Le but annexe et tout aussi important étant que je le comprenne et que je puisse le refaire par moi-même ^^
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…