Rechercher une valeur sur une plage en fonction de certaines contraintes
Résolu
palban53
Messages postés
50
Statut
Membre
-
palban53 Messages postés 50 Statut Membre -
palban53 Messages postés 50 Statut Membre -
Bonjour,
Je me permets de vous solliciter, car je n'arrive pas à faire une formule excel qui me permet de récupérer des données en fonction d'un certain nombre de contraintes.
Je vous donne un exemple :
, disons par exemple ref.312002. (vous pouvez le voir dans la photo ci jointe)
Cette dernière a une emplacement de stockage bien particulier. J'ai rempli une feuille excel qui recense tous les lieux de stockage. (vous pouvez voir son emplacement sur les cellules fusionnées entourés)
Cette référence a une adresse qui est composé de la manière suivante :
- Allée (P)
- Face (I)
- Travée (035)
- Niveau (00)
- Emplacement (A)
Je dois retrouver l'adresse (composé de ces 5 points) de l'article 312002 parmi une plage définie.
J'ai essayé d'utiliser la fonction recherche V, Index, Indirect... rien ne fonctionne car dans ce cas je suis en ligne et non en colonne.
Mon chef ne sait pas utiliser VBA, je ne veux donc pas rentrer dans du VBA. de préférence ^^

Pouvez vous m'aiguiller vers la bonne solution.
N'hésitez pas à me poser des questions si je n'ai pas été assez clair.
Je vous remercie beaucoup.
Je peux aussi faire passer le fichier afin que vous puissiez mieux comprendre et analyser le problème.
(voici le lien, pour ceux que cela pourrait aider : https://www.cjoint.com/c/HKclPIcdriT
Encore merci de votre aide
palban53
Je me permets de vous solliciter, car je n'arrive pas à faire une formule excel qui me permet de récupérer des données en fonction d'un certain nombre de contraintes.
Je vous donne un exemple :
, disons par exemple ref.312002. (vous pouvez le voir dans la photo ci jointe)
Cette dernière a une emplacement de stockage bien particulier. J'ai rempli une feuille excel qui recense tous les lieux de stockage. (vous pouvez voir son emplacement sur les cellules fusionnées entourés)
Cette référence a une adresse qui est composé de la manière suivante :
- Allée (P)
- Face (I)
- Travée (035)
- Niveau (00)
- Emplacement (A)
Je dois retrouver l'adresse (composé de ces 5 points) de l'article 312002 parmi une plage définie.
J'ai essayé d'utiliser la fonction recherche V, Index, Indirect... rien ne fonctionne car dans ce cas je suis en ligne et non en colonne.
Mon chef ne sait pas utiliser VBA, je ne veux donc pas rentrer dans du VBA. de préférence ^^
Pouvez vous m'aiguiller vers la bonne solution.
N'hésitez pas à me poser des questions si je n'ai pas été assez clair.
Je vous remercie beaucoup.
Je peux aussi faire passer le fichier afin que vous puissiez mieux comprendre et analyser le problème.
(voici le lien, pour ceux que cela pourrait aider : https://www.cjoint.com/c/HKclPIcdriT
Encore merci de votre aide
palban53
A voir également:
- Rechercher une valeur sur une plage en fonction de certaines contraintes
- Fonction si et - Guide
- Rechercher ou saisir une url - Guide
- Comment rechercher une image sur google - Guide
- Rechercher une chanson - Guide
- Frédéric cherche à faire le buzz sur les réseaux sociaux. il a ajouté une image d’ours polaire sur une image de plage. retrouvez l'image originale de la plage. que cache l'ours polaire ? - Forum Graphisme
16 réponses
Bonjour,
Eh bien votre lien n'est plus disponible, dommage.
Cela m'intéresse va pas être simple avec des cellules fusionnées.
Eh bien votre lien n'est plus disponible, dommage.
Cela m'intéresse va pas être simple avec des cellules fusionnées.
Bonjour,
Ou doivent-être indiquées les diverses adresses de la référence 312002…… en un bloc :PI03500A ou chacune une cellule !!!
Est-ce que la plage représentée (le bloc) a toujours le même nombre de lignes et colonnes, Oui / Non ?
Ou doivent-être indiquées les diverses adresses de la référence 312002…… en un bloc :PI03500A ou chacune une cellule !!!
Est-ce que la plage représentée (le bloc) a toujours le même nombre de lignes et colonnes, Oui / Non ?
bonjour,
Les diverses adresses doivent être marquées dans le tableau ci joint.
Cela signifie que les références sont déjà toutes notées.
Il faut ensuite, via la fameuse formule, remplir les données dans les cases associées:
- Allée (P) (pour cette exemple : cellule J96)
- Face (I) (pour cette exemple : cellule k96)
- Travée (035) (pour cette exemple : cellule L96)
- Niveau (00) (pour cette exemple : cellule M96)
- Emplacement (A) (pour cette exemple : cellule N96)
Le tableau se trouve en dessous à partir de la ligne 96
En ce qui concerne les blocs, ils ne sont pas toujours de la même largeur. Vous pouvez le constater dans les différentes gares (la plage totale va de la cellule V5 à JLL86).
Merci de votre aide
Coridalement

Les diverses adresses doivent être marquées dans le tableau ci joint.
Cela signifie que les références sont déjà toutes notées.
Il faut ensuite, via la fameuse formule, remplir les données dans les cases associées:
- Allée (P) (pour cette exemple : cellule J96)
- Face (I) (pour cette exemple : cellule k96)
- Travée (035) (pour cette exemple : cellule L96)
- Niveau (00) (pour cette exemple : cellule M96)
- Emplacement (A) (pour cette exemple : cellule N96)
Le tableau se trouve en dessous à partir de la ligne 96
En ce qui concerne les blocs, ils ne sont pas toujours de la même largeur. Vous pouvez le constater dans les différentes gares (la plage totale va de la cellule V5 à JLL86).
Merci de votre aide
Coridalement
Bonjour,
Merci pour l’information c’est OK.
Question pourquoi des blocs de 417 colonnes alors qu’il n'y a pas plus de 10 à15 données sur une ligne….. ?
Merci pour l’information c’est OK.
Question pourquoi des blocs de 417 colonnes alors qu’il n'y a pas plus de 10 à15 données sur une ligne….. ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
Merci.
Je suis sur le problème et je pense que vu la structure des blocs avec cellules fusionnées via les fonctions cela va être très complexe. Peut-être il faudra passer par fonctions personnalisées VBA.
Merci.
Je suis sur le problème et je pense que vu la structure des blocs avec cellules fusionnées via les fonctions cela va être très complexe. Peut-être il faudra passer par fonctions personnalisées VBA.
Bonjour,
Eh oui la première c’est bon, par contre les autres ne sont pas toujours fusionnée avec le même nombre de colonnes… et c’est là un problème en plus…
Je poursuivrai demain.
Eh oui la première c’est bon, par contre les autres ne sont pas toujours fusionnée avec le même nombre de colonnes… et c’est là un problème en plus…
Je poursuivrai demain.
Bonjour,
J’ai une piste via fonction que je dois finalisée d’ici ce soir. J’espère que se sera bon.
Bonne journée.
J’ai une piste via fonction que je dois finalisée d’ici ce soir. J’espère que se sera bon.
Bonne journée.
Bonjour, Je rentre seulement du travail.
Je vous prie de m'excuser pour cette réponse tardive.
Je pensais à une solution. 1 première fonction qui définit la cellule (je pense trouver la solution d'ici demain matin). Puis avec des index, on peut, peut être, trouver la valeur de la cellule recherchée pour chaque cellule associée à l'adresse de la référence.
C'est une trés bonne nouvelle !! Je vous remercie vraiment pour votre aide. Peut être avez vous pensé à une solution qui se rapproche de mon idée.
Cordialement
Je vous prie de m'excuser pour cette réponse tardive.
Je pensais à une solution. 1 première fonction qui définit la cellule (je pense trouver la solution d'ici demain matin). Puis avec des index, on peut, peut être, trouver la valeur de la cellule recherchée pour chaque cellule associée à l'adresse de la référence.
C'est une trés bonne nouvelle !! Je vous remercie vraiment pour votre aide. Peut être avez vous pensé à une solution qui se rapproche de mon idée.
Cordialement
Bonjour,
Il semble que je suis sur la bonne voie : voir la feuille « Test_Gares ». Cependant je tombe sur un problème car le début des plages ( P ) ne commence pas toujours au début du bloc correspondant (expl : (P,I.035) avec T55 et bloc T56 et pour (P,I,033) avec PZ55 et bloc QB56 ….c’est encore plus sur les suivants. Il faut tous les contrôler et les corriger. https://mon-partage.fr/f/wnhVloZY/
La suite demain.
Il semble que je suis sur la bonne voie : voir la feuille « Test_Gares ». Cependant je tombe sur un problème car le début des plages ( P ) ne commence pas toujours au début du bloc correspondant (expl : (P,I.035) avec T55 et bloc T56 et pour (P,I,033) avec PZ55 et bloc QB56 ….c’est encore plus sur les suivants. Il faut tous les contrôler et les corriger. https://mon-partage.fr/f/wnhVloZY/
La suite demain.
Bonjour, Je rentre seulement du travail.
Je vous prie de m'excuser pour cette réponse tardive.
Je pensais à une solution. 1 première fonction qui définit la cellule (je pense trouver la solution d'ici demain matin). Puis avec des index, on peut, peut être, trouver la valeur de la cellule recherchée pour chaque cellule associée à l'adresse de la référence.
Je vous envoie une ébauche demain matin
C'est une trés bonne nouvelle !! Je vous remercie vraiment pour votre aide. Peut être avez vous pensé à une solution qui se rapproche de mon idée.
Cordialement
Je vous prie de m'excuser pour cette réponse tardive.
Je pensais à une solution. 1 première fonction qui définit la cellule (je pense trouver la solution d'ici demain matin). Puis avec des index, on peut, peut être, trouver la valeur de la cellule recherchée pour chaque cellule associée à l'adresse de la référence.
Je vous envoie une ébauche demain matin
C'est une trés bonne nouvelle !! Je vous remercie vraiment pour votre aide. Peut être avez vous pensé à une solution qui se rapproche de mon idée.
Cordialement
Bonjour,
Voici la formule pour retrouver la cellule de la référence en question :
=ADRESSE(SOMMEPROD(($S$1:$LOH$90=A96)*(LIGNE($A$1:$A$90)));SOMMEPROD(($S$1:$LOH$90=A96)*(COLONNE($S$1:$LOH$90)));4)
Cependant c'est au moment de faire l'index, que je n'arrive pas faire la formule qui va bien en raison des décalages.
J'étais parti sur cette base :
=SI(ET($AR68="00";$AU68="A");DECALER(INDIRECT($AX68&":"&$AX68);-4;0);SI(ET($AR68="00";$AU68="B");DECALER(INDIRECT($AX68&":"&$AX68);-4;-2);SI(ET($AR68="00";$AU68="C");DECALER(INDIRECT($AX68&":"&$AX68);-4;-4);SI(ET($AR68="10";$AU68="A");DECALER(INDIRECT($AX68&":"&$AX68);-1;0);SI(ET($AR68="10";$AU68="B");DECALER(INDIRECT($AX68&":"&$AX68);-1;-2);DECALER(INDIRECT($AX68&":"&$AX68);-1;-4))))))
J'espère que cela vous aura aider
Merci
Voici la formule pour retrouver la cellule de la référence en question :
=ADRESSE(SOMMEPROD(($S$1:$LOH$90=A96)*(LIGNE($A$1:$A$90)));SOMMEPROD(($S$1:$LOH$90=A96)*(COLONNE($S$1:$LOH$90)));4)
Cependant c'est au moment de faire l'index, que je n'arrive pas faire la formule qui va bien en raison des décalages.
J'étais parti sur cette base :
=SI(ET($AR68="00";$AU68="A");DECALER(INDIRECT($AX68&":"&$AX68);-4;0);SI(ET($AR68="00";$AU68="B");DECALER(INDIRECT($AX68&":"&$AX68);-4;-2);SI(ET($AR68="00";$AU68="C");DECALER(INDIRECT($AX68&":"&$AX68);-4;-4);SI(ET($AR68="10";$AU68="A");DECALER(INDIRECT($AX68&":"&$AX68);-1;0);SI(ET($AR68="10";$AU68="B");DECALER(INDIRECT($AX68&":"&$AX68);-1;-2);DECALER(INDIRECT($AX68&":"&$AX68);-1;-4))))))
J'espère que cela vous aura aider
Merci
Bonjour,
Eh bien après divers tests en décortiquant la formule j’ai fini par trouver l’intrus. Le problème survient lorsque vous avez une fonction dans une cellule du tableau qui renvoie une erreur (#N/A) et il y en a un certain nombre. J’ai corrigé la fonction
(Exemple :
Image partie fichier à dispo.

Eh bien après divers tests en décortiquant la formule j’ai fini par trouver l’intrus. Le problème survient lorsque vous avez une fonction dans une cellule du tableau qui renvoie une erreur (#N/A) et il y en a un certain nombre. J’ai corrigé la fonction
(Exemple :
= RECHERCHEV(CVA4;FEUIL2!$A$1:$E$5000;$DF$2;FAUX))par
=SI(CVA4="";"";RECHERCHEV(CVA4;FEUIL2!$A$1:$E$5000;$DF$2;FAUX)))
Image partie fichier à dispo.
Bonjour,
Mauvaise piste lorsque cellules contiennent du texte.
Suis de retour lundi pour reprendre cette partie.
Bon Week-end
Mauvaise piste lorsque cellules contiennent du texte.
Suis de retour lundi pour reprendre cette partie.
Bon Week-end
Bonjour,
Petite info: j'ai tout repris à zéro et cette fois ça marche dans le bon sens. Reste plus qu'à imbriquer les diverses formules et se sera bon. Patience.
Petite info: j'ai tout repris à zéro et cette fois ça marche dans le bon sens. Reste plus qu'à imbriquer les diverses formules et se sera bon. Patience.
Bonsoir,
Pas de problème. Je vous en demande déjà beaucoup...
Je suis désolé de cette réponse tardive, je n'ai pas pu me connecter ce weekend.
Je vous remercie beaucoup pour l'aide que vous m'apportez
Vous êtes un chef !
Encore merci
(juste à titre informatif, vous pensez pouvoir trouver la solution définitive à quel moment ?)
Cordialement
Pas de problème. Je vous en demande déjà beaucoup...
Je suis désolé de cette réponse tardive, je n'ai pas pu me connecter ce weekend.
Je vous remercie beaucoup pour l'aide que vous m'apportez
Vous êtes un chef !
Encore merci
(juste à titre informatif, vous pensez pouvoir trouver la solution définitive à quel moment ?)
Cordialement
Bonjour,
Voici ma proposition qui se trouve sur la feuille « Test_GARES ».
Vue la complexité de la mise en place des blocs j’ai opté pour une solution mixte (fonction et VBA). Votre dossier : https://mon-partage.fr/f/WJSWm1fb/
Voici ma proposition qui se trouve sur la feuille « Test_GARES ».
Vue la complexité de la mise en place des blocs j’ai opté pour une solution mixte (fonction et VBA). Votre dossier : https://mon-partage.fr/f/WJSWm1fb/
Bonsoir,
Tout d'abord, un grand merci pour tout le travail accompli... J'ai compris votre raisonnement et le fait de prendre toutes les cellules indépendamment, ainsi que les 2 formules VBA pour faire le rassemblement était très bien vu de votre part.
Après réflexion, une formule : macro / VBA était la meilleure solution.

J'ai juste un petit problème sur les emplacements. Dans certains cas, comme vous pouvez le constater sur la photo, j’ai des "0" et je ne sais pas trop d'où cela vient...
Je pensais que cela était du au format de la cellule, mais non... Ai je manqué quelque chose ?
Merci encore de votre aide
Tout d'abord, un grand merci pour tout le travail accompli... J'ai compris votre raisonnement et le fait de prendre toutes les cellules indépendamment, ainsi que les 2 formules VBA pour faire le rassemblement était très bien vu de votre part.
Après réflexion, une formule : macro / VBA était la meilleure solution.
J'ai juste un petit problème sur les emplacements. Dans certains cas, comme vous pouvez le constater sur la photo, j’ai des "0" et je ne sais pas trop d'où cela vient...
Je pensais que cela était du au format de la cellule, mais non... Ai je manqué quelque chose ?
Merci encore de votre aide
Bonjour,
Merci de remplacer la valeur d’argument 50 par 100 pour la fonction « NivEmpl() »
En marge :
La mise en place des blocs qui n'est pas rigoureuse.
Par principe la première cellule d'un bloc c'est toujours en haut et à gauche puis sur la droite les autres blocs commencent sur la même ligne (en principe c'est ok chez vous) en verticale tous les blocs sont alignées sur la même colonne (là ce n'est pas le cas chez vous: exemple colonne "PX:PX" vous avez le bloc de la ligne 56 qui commence à la colonne "PY" ce qui induit un décalage vers la droite que le programme ce qui peut donner des résultat erronées.
Il faut absolument corriger les alignements.
Merci de remplacer la valeur d’argument 50 par 100 pour la fonction « NivEmpl() »
En marge :
La mise en place des blocs qui n'est pas rigoureuse.
Par principe la première cellule d'un bloc c'est toujours en haut et à gauche puis sur la droite les autres blocs commencent sur la même ligne (en principe c'est ok chez vous) en verticale tous les blocs sont alignées sur la même colonne (là ce n'est pas le cas chez vous: exemple colonne "PX:PX" vous avez le bloc de la ligne 56 qui commence à la colonne "PY" ce qui induit un décalage vers la droite que le programme ce qui peut donner des résultat erronées.
Il faut absolument corriger les alignements.
Bonsoir,
Merci pour l'info, je viens de faire la modification.
J'ai également compléter le tableau avec l'implantation finale
Cependant, quand j'ai ré ouvert le fichier, et que j'ai fait le changement, toutes mes valeurs sont passées en #REF#
En effet, j'ai voulu supprimer des tables pour alléger le fichier. Cela signifie que les valeurs en dessous sont erronées. Cette modif peut-elle avoir un impact sur le fichier.
Je vous laisse le lien, pour jeter un coup d'oeil rapide. Je suis sur qu'en 2 minutes vous aurez trouvé le problème :
https://mon-partage.fr/f/9m3u7XIy/
De plus, vous avez complément raison !!! Cependant, mon responsable voulait le fichier de cette manière là, impossible de le faire changer d'avis. Je n'ai pas eu le choix. mais vous avez totalement raison.
Merci pour votre réponse.
En espérant pouvoir trouver rapidement la solution.
Encore merci pour toute l’implication que vous avez porté pour mon cas
Merci pour l'info, je viens de faire la modification.
J'ai également compléter le tableau avec l'implantation finale
Cependant, quand j'ai ré ouvert le fichier, et que j'ai fait le changement, toutes mes valeurs sont passées en #REF#
En effet, j'ai voulu supprimer des tables pour alléger le fichier. Cela signifie que les valeurs en dessous sont erronées. Cette modif peut-elle avoir un impact sur le fichier.
Je vous laisse le lien, pour jeter un coup d'oeil rapide. Je suis sur qu'en 2 minutes vous aurez trouvé le problème :
https://mon-partage.fr/f/9m3u7XIy/
De plus, vous avez complément raison !!! Cependant, mon responsable voulait le fichier de cette manière là, impossible de le faire changer d'avis. Je n'ai pas eu le choix. mais vous avez totalement raison.
Merci pour votre réponse.
En espérant pouvoir trouver rapidement la solution.
Encore merci pour toute l’implication que vous avez porté pour mon cas
Bonjour,
Je regarderai votre dossier demain après-midi.
Ceci : Cependant, mon responsable voulait le fichier de cette manière-là, impossible de le faire changer d'avis
Pas de problème cela fonctionne très bien, faut juste être rigoureux avec la position des blocs et en plus éviter que des formules produisent des erreurs si une donnée manque….( utiliser le SI()…. !)
Je regarderai votre dossier demain après-midi.
Ceci : Cependant, mon responsable voulait le fichier de cette manière-là, impossible de le faire changer d'avis
Pas de problème cela fonctionne très bien, faut juste être rigoureux avec la position des blocs et en plus éviter que des formules produisent des erreurs si une donnée manque….( utiliser le SI()…. !)
Bonsoir,
Merci pour votre réponse tardive.
J'attends votre réponse. Je suis curieux de savoir ce qui s'est produit...
OUI c'est une évidence, vous avez entièrement raison !
Pour la prochaine version, je prendrais les choses en main... Cela sera plus simple dans la mise en place des formules;
Cordialement
Bonne soirée
Merci pour votre réponse tardive.
J'attends votre réponse. Je suis curieux de savoir ce qui s'est produit...
OUI c'est une évidence, vous avez entièrement raison !
Pour la prochaine version, je prendrais les choses en main... Cela sera plus simple dans la mise en place des formules;
Cordialement
Bonne soirée
Je vous remercie de vous interresser a mon cas. Toute la complexité est la ...
je vous renvoie un nouveau lien demain. Je suis en déplacement jusqu’à demain.
Merci
Bonne journée
Je vous remercie de votre aide
Je vous donne un nouveau lien afin que vous puissiez mieux appréhender la problématique rencontrée.
Voici le lien:
https://www.transfernow.net/files/?utm_source=61khp1810ycs&utm_medium=&utm_content=en (dite moi si ce lien fonctionne)
Merci de votre aide
Bonne soiree