RechercheV avec trois critères

Résolu/Fermé
Signaler
Messages postés
12
Date d'inscription
vendredi 7 juin 2013
Statut
Membre
Dernière intervention
26 octobre 2017
-
Messages postés
12
Date d'inscription
vendredi 7 juin 2013
Statut
Membre
Dernière intervention
26 octobre 2017
-
Bonjour à tous,

Une petite question me bloque depuis hier en début d'après midi : Je cherche à faire une RechercheV avec 3 critères. Je m'explique :

Dans ma première feuille :
- De B2 à B16577, j'ai des matricules de salariés qui ont fait une formation.
- De K2 à K16577, j'ai des dates de formation.
- Je souhaite que les résultats de ma recherche se placent de P2 à P16577.

Dans ma deuxième feuille :
- De A2 à A27363, j'ai les mêmes matricules de salariés mélangés avec des matricules de salariés qui n'ont pas fait de formation.
- De D2 à D27363, j'ai le colonne de valeurs que je veux faire ressortir (C'est soit la lettre "J" soit la lettre "N").
- De E2 à E27363, j'ai une date de début et de F2 à F27363 j'ai une date de fin.

Mon problème (si c'est suffisamment clair jusque là ^^) :

Je souhaite faire une RechercheV (ou une autre formule qui me procurerait le même résultat) qui me renvoie la valeur de D2 à D27363 lorsque :
- Le matricule de ma première feuille est égal à celui de la seconde feuille,
- Ma date de formation est supérieure à ma date de début
- Ma date de formation est inférieure à ma date de fin.

Ca a l'air tout bête mais je me bats avec des formules depuis hier sans parvenir à en tirer quelque chose. Je préférerai éviter le VBA si possible parce que ce fichier sera a disposition de personnes peu férues d'informatique et je ne suis moi même que très néophyte en VBA.

Si quelqu'un peut m'aider à enlever cette épine de mon pied, je lui serai éternellement reconnaissant !

Merci par avance d'avoir lu ce message et d'avoir réfléchi à mon problème,

Bonne journée,

9 réponses

Messages postés
1235
Date d'inscription
jeudi 22 avril 2010
Statut
Membre
Dernière intervention
19 mai 2015
179
Re,
Je n'ai pas trouvé moyen de faire ce que tu demandes sans VBA malheureusement...

Ici un classeur-exemple avec du VBA
1
Messages postés
12
Date d'inscription
vendredi 7 juin 2013
Statut
Membre
Dernière intervention
26 octobre 2017

Tout d'abord merci Morgothal de t'être penché sur mon problème ! En effet, j'ai continué à chercher de mon côté et même en exploitant l'ensemble de mes (maigres) connaissances en formules excel et en les tournant dans tous les sens je n'ai pas trouvé comment faire...
Merci pour ta solution VBA que je vais étudier mais il va falloir que j'explique aux autres à s'en servir pour le futur ! ;)
0
Messages postés
12
Date d'inscription
vendredi 7 juin 2013
Statut
Membre
Dernière intervention
26 octobre 2017

Ca l'air de fonctionner mais je viens de la laisser tourner 15 min et elle n'arrive pas à faire les 27 000 lignes dans ce laps de temps... Tant pis, je réessaierai Lundi parce que j'ai besoin d'Excel ! Je reviendrai si ça n'a pas résolu mon problème, mais en tous cas merci beaucoup à toi pour le temps consacré et l'aide apportée ! Bon week end !
0
Messages postés
17826
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
22 janvier 2022
4 914
Salut,

Tu peux crée un exemple de ton fichier avec simplement quelques lignes avec des données anonymes comme des titi toto etc ... que l'on apprécie la structure, pour t'écrive une formule adaptée
que tu peux joindre avec ce lien

https://www.cjoint.com/
0
Messages postés
1235
Date d'inscription
jeudi 22 avril 2010
Statut
Membre
Dernière intervention
19 mai 2015
179
Bonjour,
J'ai essayé de faire un classeur-exemple qui correspondrait à ton souci (si j'ai bien compris toutes tes explications ;) )

--> Le classeur exemple

A+
0
Messages postés
12
Date d'inscription
vendredi 7 juin 2013
Statut
Membre
Dernière intervention
26 octobre 2017

Et voici !

https://www.cjoint.com/?0FhkqRCF6bj

Merci beaucoup à toi de te pencher sur mon problème !
0
Messages postés
1235
Date d'inscription
jeudi 22 avril 2010
Statut
Membre
Dernière intervention
19 mai 2015
179
Ton classeur adapté avec ma formule :

Classeur ;-)
0
Messages postés
12
Date d'inscription
vendredi 7 juin 2013
Statut
Membre
Dernière intervention
26 octobre 2017

Merci beaucoup Morgothal de te pencher sur mon problème !
Ta solution est une avancée non négligeable cependant il ne peut pas y avoir de formation hors date puisque la date de formation doit obligatoirement être comprise entre la date de début et la date de fin et renvoyer un code J ou un code N...

Ex : dans le fichier, Michel Field devrait renvoyer un code "J" puisque sa date de formation du "15/09/2011" est comprise entre le 09/05/2011 et le 02/10/2011...

Cela dit je ne sais même pas si c'est faisable... En tous cas encore merci !
0
Messages postés
1235
Date d'inscription
jeudi 22 avril 2010
Statut
Membre
Dernière intervention
19 mai 2015
179
Si la date de formation est toujours comprise entre la date de début et la date de fin, pourquoi faire un critère la dessus ?

Pour que le classeur que j'ai envoyé fonctionne, il aurait fallu que la feuille "Code J N" contienne des matricules dédoublonnés... (il y a plusieurs dates de début et fin par matricule).
Il faudrait un critère supplémentaire pour savoir quelles dates prendre en compte (quelle ligne de la feuille 2 en somme).
0
Messages postés
12
Date d'inscription
vendredi 7 juin 2013
Statut
Membre
Dernière intervention
26 octobre 2017

J'ai du mal m'exprimer en faiit, je vais essayer d'être un poil plus clair ! :)
En fait sur ma feuille 1, la date de formation de la personne doit me permettre de rapatrier le statut de la personne à cette date qui peut être J ou N. Le salarié peut changer de statut au fur et à mesure de sa carrière.
Ainsi dans ma feuille 2, pour le même matricule, je peux avoir différents code "J" et "N" selon les dates. Je voudrai que cela me renvoit le code du statut de la personne à la date où celle-ci suit sa formation.


Exemple : Si FIELD Michel suit une formation au 15/05/2011, la recherche doit me revoyer le code "J" puisque cette date est située entre le 09/05/2011 et le 02/10/2011.
A contrario, si FIELD Michel suit une formation au 01/02/2012 la recherche doit me renvoyer le code "N" puisque cette date est située entre le 03/10/2011 et le 31/07/2012.

J'espère avoir été plus explicite ! :) Redis moi si tu n'as pas saisi, pas de souci ! Merci de ton aide.
0
Messages postés
1235
Date d'inscription
jeudi 22 avril 2010
Statut
Membre
Dernière intervention
19 mai 2015
179
Aaah ok, c'est dans l'autre sens qu'il faut chercher :)
Je me penche dessus, je reviens
0
Messages postés
17826
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
22 janvier 2022
4 914
Re,

pas trop eu le temps aujourd'hui, regarde le fichier joint voir si c'est ce que tu cherches sur les deux feuilles colonne R et H

https://www.cjoint.com/?CFhrcd6ojCf

A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
0
Messages postés
17826
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
22 janvier 2022
4 914
Re,

Prend plutôt ce fichier, sur l'autre il y a une erreur dans l'affichege du prénom

https://www.cjoint.com/?CFhuMEZ7M1y
0
Messages postés
12
Date d'inscription
vendredi 7 juin 2013
Statut
Membre
Dernière intervention
26 octobre 2017

Salut Mike-31 !
Merci à toi aussi de te pencher sur mon problème ! Malheureusement, mon texte explicatif a manqué de clarté et tout comme Morgothal (ce qui prouve si besoin était que c'est de ma faute ^^) tu t'es trompé dans la valeur à faire ressortir. En fait mon but est de rapatrier mon code "Jour/Nuit" de la feuille n°2 sur la feuille numéro 1 sous l'intitulé de colonne "CODE J/N".

J'ai mis un exemple qui illustre bien ce que je cherche à obtenir à Morgothal et je me permets de te le copier coller afin d'éclaircir au mieux mon propos :

"Exemple : Si FIELD Michel suit une formation au 15/05/2011, la recherche doit me renvoyer le code "J" dans la colonne P de la première feuille puisque cette date est située entre le 09/05/2011 et le 02/10/2011.
A contrario, si FIELD Michel suit une formation au 01/02/2012 la recherche doit me renvoyer le code "N" dans la colonne P de la première feuille puisque cette date est située entre le 03/10/2011 et le 31/07/2012. "

J'espère avoir été plus compréhensible, je reste à ta disposition si tu as besoin d'autres éléments. Encore merci du temps que tu consacres à la résolution de mon problème.
0
Messages postés
17826
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
22 janvier 2022
4 914
Re,

Peut être ceci ?

https://www.cjoint.com/?CFirbpU8cTx
0
Messages postés
12
Date d'inscription
vendredi 7 juin 2013
Statut
Membre
Dernière intervention
26 octobre 2017

Re,
C'est tout à fait cela ! Sauf que je ne dois pas avoir de ligne vide dans le Code J/N, il faut que celui ci me renvoie le code applicable au moment de la formation.
Par exemple, pour Bernadette Chirac, je ne devrai avoir que des lignes "J" parce que elle n'a jamais changé de statut.
Mais si elle avait changé de statut pour passer au statut "N" le 01/01/2013 sur la feuille 2, la dernière formation en date du 19/04/2013 doit me renvoyer un code "N".

Cela dit je doute de plus en plus que cela soit faisable...

PS : si ça peut t'aider, le dernier classeur avec du VBA de Morghotal répond parfaitement à ma problématique. Le problème étant que ça fait planter Excel pour calculer sur 16 000 lignes, ce qui rendrait l'usage d'une formule plus facile.
0
Messages postés
17826
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
22 janvier 2022
4 914
Re,

si le fichier de Morghotal te convient, et comme il ne répond pas je me permet de faire une intrusion sur son fichier

ajoute une simple gestion d'erreur en début de procédure juste après les variables Dim

On Error Resume Next
0
Messages postés
12
Date d'inscription
vendredi 7 juin 2013
Statut
Membre
Dernière intervention
26 octobre 2017

Re Mike-31,
Je vais faire la modification que tu me préconises demain. A dire vrai, son fichier me convient sans me convenir : Il résous ma problématique sans conteste mais le temps de traitement de mon fichier fait que cela fait planter Excel sans arrêt et que ça ne parvient pas à calculer toutes mes lignes... Je réessaierai demain et te tiendrai au courant ! Merci encore.
0
Messages postés
1235
Date d'inscription
jeudi 22 avril 2010
Statut
Membre
Dernière intervention
19 mai 2015
179
Pas de soucis Mike,
Sinon pour simplifier la tâche de la macro, séparer le classeur en plusieurs peut être une solution (histoire de ne pas traiter les 16 000 lignes d'un coup).
A tester ;-)
A+
0
Messages postés
12
Date d'inscription
vendredi 7 juin 2013
Statut
Membre
Dernière intervention
26 octobre 2017

Bonjour !

Je suis finalement parvenu à exploiter la solution proposée par Morgothal qui a répondu parfaitement à ma demande en laissant tourner Excel pendant 1h30. J'ai du finir à la main parce que je n'avais pas anticipé que certaines dates de formations pouvaient être égales à la date de changement de statut mais c'est un détail de peu d'importance !

Merci beaucoup à vous 2 pour l'aide que vous m'avez apportée, ça m'a été d'un grand secours ! Au plaisir !
0