Mettre dans l'ordre croissant plusieurs valeur avec un critère texte en VBA

Fermé
rorocr Messages postés 81 Date d'inscription mardi 8 septembre 2015 Statut Membre Dernière intervention 8 juin 2022 - 9 juin 2020 à 13:25
rorocr Messages postés 81 Date d'inscription mardi 8 septembre 2015 Statut Membre Dernière intervention 8 juin 2022 - 9 juin 2020 à 20:40
Bonjour à tous,

Je viens vers vous pour m'aider à trouver une formule qui me permettrait de renvoyer la k ème petite valeur de mon choix selon un critère texte dans une colonne adjacente.
La difficulté réside dans le fait que la recherche de la plus petite valeur (ici, des dates) et que le critère texte se trouvent dans 2 tableaux différents.

Je joint un exemple pour faciliter la compréhension de mon problème.
https://cjoint.com/c/JFjlwOYoD6w


Je recherche une solution en VBA svp car le traitement par formule est trop compliqué et surement lourd.

Merci d'avance

Cordialement

2 réponses

ccm81 Messages postés 10903 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 19 novembre 2024 2 428
Modifié le 9 juin 2020 à 13:55
Bonjour

Pas très clair ton fichier
Les noms doivent ils être pris en colonne A où il y a des noms "doubles", ou bien en colonnes C et D qui ne contient que des noms "simples" que l'on retrouve dans la colonne K des résultats attendus ?
Si c'est en colonne A (et F), en A3 on a un PascalXavier et en F5 un XavierPascal, est ce le même nom ?

Cdlmnt
0
rorocr Messages postés 81 Date d'inscription mardi 8 septembre 2015 Statut Membre Dernière intervention 8 juin 2022 1
9 juin 2020 à 20:17
Bonjour ccm81,

Pour le 1er tableau, j'ai concatener dans la colonne A les noms qui se trouvent en C et D pour faire une recherche uniquement dans la colonne A au lieu d'en faire 2 en colonne C et D.
Même raisonnement pour le deuxième tableau, les colonnes H et I sont concatenées en colonne F.

Pour être plus clair, j'ai besoin de classer par ordre croissant les dates concernant les noms en colonne K qu'ils soient en colonne C ou D pour le 1er tableau et en colonne H ou I dans le deuxième tableau.

Pour répondre a ta question,
si on cherche à classer les dates pour Xavier,
il faut effectivement prendre en compte le PascalXavier en A3 (date associée = 17/08/2013) et le XavierPascal en F5 (date associée = 11/08/2013)
Je devrais donc retrouver la date 11/08/2013 en L4 (date la plus petite) et 17/08/2013 en M4 (car deuxième date la plus petite) etc. etc. jusqu’à ce qu'il n'y ai plus de date à classer pour Xavier.

J'espère avoir été plus clair cette fois et merci pour votre aide.

Cordialement,
0
ccm81 Messages postés 10903 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 19 novembre 2024 2 428
9 juin 2020 à 15:21
Avec des noms "simples" pris en colonnes C,D,H,I .... à tester
https://cjoint.com/c/JFjnrtacJJB

Cdlmnt
0
rorocr Messages postés 81 Date d'inscription mardi 8 septembre 2015 Statut Membre Dernière intervention 8 juin 2022 1
9 juin 2020 à 20:40
Re bonjour ccm81,

Votre solution est déjà très intéressante mais mon réel fichier étant rempli au fur et a mesure du temps, (c'est à dire que des noms déjà existants peuvent être ajoutés dans une des 4 colonnes avec la date correspondante)
Est-il possible de zapper l'étape ctrl+k et de créer une formule du type :
Compter le nombre de fois que le nom apparaît dans les colonnes A et F (ou bien en C D H et I) pour ne rien renvoyer si l'on demande un numéro de rang supérieur au nombre de fois que le nom apparaît.
De cette manière, au fur et à mesure que le tableau ce remplirait, les dates s'ajouteraient directement dans le tableau de classement.

Merci d'avance,
0