• Initiateur de la discussion Initiateur de la discussion Adriano43
  • Date de début Date de début

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 !

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

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
 
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???
 
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
 
- 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

Réponses
15
Affichages
772
Réponses
5
Affichages
724
Réponses
1
Affichages
793
Retour