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

Identifier série

Adriano43

XLDnaute Occasionnel
Bonjour à toutes et à tous,

Me voilà confronté à un nouveau problème devant lequel j'ai le raisonnement sur papier mais n'arrive pas à le transcrire efficacement en VBA.
Concrétement, je souhaite que la macro recherche la valeur minimale de la colonne J pour les cellules "nombres non nulles" et me restitue par la suite la série des 5 plus petites valeurs rangées par ordre croissant en m'indiquant la valeur correspondante contenue en colonne K.

Ex: série en valeur 20;30;40;50;60 correspondant en colonne K à A,B,C,D,E
résultat à afficher par la macro : A - B - C - D - E
Ci-joint un fichier exemple

Cordialement

Adriano
 

Pièces jointes

  • Test.xlsx
    13.5 KB · Affichages: 41
  • Test.xlsx
    13.5 KB · Affichages: 47
  • Test.xlsx
    13.5 KB · Affichages: 45

Adriano43

XLDnaute Occasionnel
Re : Identifier série

Ok, je vais essayer d'éclaircir cela et je laisserai le quick sort.
Par contre pourriez vous m'indiquer le fonctionnement sur les lignes grisées?? Qu'en serait il si les lignes étaient rouge par exemple?
 

Efgé

XLDnaute Barbatruc
Re : Identifier série

Re
Grise, rouge ou marron, peu importe.
Je me suis basé sur le fait que ce sont les seules dont la valeur (en colonne 18 pour toi) est vide.
Voir le Post 6 pour l'exemple.
Cordialement
 

Adriano43

XLDnaute Occasionnel
Re : Identifier série

Ok merci.
Et pour en revenir à mon 1er post, comment pourrez t'on incrémenter la valeur d'une ligne grise sa valeur dès lors qu'elle est dans la série.
Ex : Pour le fichier Test (3), le compte rendu donne:
C 69
D 97
A 112
E 145
B 300
Les chiffres sont une unité de mesure du temps. On comprend donc que 2C = 138, 2D = 194... et par conséquent le compte rendu des 5 valeurs doit être
C 69
D 97
A 112
C 138
E 145
D 194

En espérant avoir été clair, je pensais passer par une colonne intermédiaire, qui correspondrait à la valeur d'origine multipliée par la fréquence d'apparition dans la série... et la macro "compte rendu" s'appliquerait à cette colonne mais je ne suis pas capable de mettre cela en place en VBA... Je suis entrain de regarder pour comprendre votre macro ce qui sera déjà un grand progrès pour moi...

Merci d'avance

Adriano
 

Adriano43

XLDnaute Occasionnel
Re : Identifier série

Ok, merci de votre aide vous m'avez déja bien aidé.
Par contre, je ne vois pas dans le code où vous faites référence au fait que la ligne supérieure porte la lettre (quand on s'intéresse aux lignes surlignées...)
Et j'ai copié mes données dans votre "test 4", cela plante pourtant le nombre de colonnes est identique, est ce du au nombre de ligne, environ 200 pour le véritable fichier???
 

Efgé

XLDnaute Barbatruc
Re : Identifier série

RE
Une petite explication:
Dans
VB:
If .Cells(i, 17).Value > 0 And .Cells(i, 18).Value = "" Then _
D(.Cells(i, 17).Value) = .Cells(i - 1, 18).Value
On lit
Si la valeur de la cellule ligne i colonne 17 est suppérieur à 0 ET si la valeur de la ligne i colonne 18 est égale à rien alors _
La clé du dictionaire D est la valeur de la ligne i colonne 17 et l'item du dictionaire correspondant à cette clé est la valeur de la ligne i - 1 colonne 18.

d'où i - 1 est la ligne du dessus de la cellule vide en colonne 18
Cordialement
 

Efgé

XLDnaute Barbatruc
Re : Identifier série

ReTout s'explique....J'ai décomposé les If / End If pour simplifier la lecture.Pas terrible des formules en erreur... Essai de te débrouiller autrement la prochaine fois ; )Cordialement
 

Pièces jointes

  • Test(5).xls
    75 KB · Affichages: 19
  • Test(5).xls
    75 KB · Affichages: 20
  • Test(5).xls
    75 KB · Affichages: 19

Adriano43

XLDnaute Occasionnel
Re : Identifier série

Re,

J'étais justement entrain de corriger mes formules pensant que ça pouvait venir de là mais non. Quel était le problème en réalité?
Un grand merci de votre aide en tout cas!!!
 

Efgé

XLDnaute Barbatruc
Re : Identifier série

Bonjour Adriano,
La listBox est sur la feuille ? dans un UserForm ?
Un nouvel exemple, le plus prochie possible de la réalité, est nécessaire.
Cordialement
 

Adriano43

XLDnaute Occasionnel
Re : Identifier série

Re,

Voici le fichier le plus proche du réel avec les explications sur les zones de textes...
En tout cas un grand merci par avance de votre aide Efgé

Cordialement

Adriano43
 

Pièces jointes

  • Test(6).xlsm
    50.8 KB · Affichages: 30

Discussions similaires

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