Fonction Execl RECHERCHEV

Fermé
evelyno Messages postés 1 Date d'inscription mercredi 14 juillet 2010 Statut Membre Dernière intervention 14 juillet 2010 - 14 juil. 2010 à 18:15
ABOUMAWAN Messages postés 5 Date d'inscription mardi 18 novembre 2008 Statut Membre Dernière intervention 24 août 2010 - 29 juil. 2010 à 10:40
Bonjour,

J'ai créé un tableau sur Excel assez spécifique. J'espère que je vais arriver à vous faire comprendre mon souci. c'est un tabeau qui contient des nombres en chiffres et en lettres allant de 1 à 2 millions. Pour les chiffres bien entendu j'ai dû utiliser précisément 31 colonnes de A à AE et aussi remplir toutes les cellules qu'une colonne puisse comporter c-à-d 65 536. A partir de la colonne AF j'ai converti et saisi en lettres tous ces nombres ( de 1 à 2 millions)grâce à la formule = ConvNumberLetter. Là aussi j'ai dû remplir près de 30 colonnes et 65 536 cellules par colonne. Le but de la manoeuvre est de faire renvoyer automatiquement en lettres la somme d'une facture après qu'une cellule donnée a été remplie par cette somme en chiffre sur une autre feuille qui est en fait la maquette de ma facture. A l'aide de la fonction RECHERCHEV j'aimerais pouvoir effectuer cet affichage automatique. Alors voici ma formule:
=RECHERCHEV(J42;TARIF;2). Ici la cellule J42 est celle que contient la somme en chiffres. le nom TARIF est celui de la grande plage qui contient tous les montants en chiffres et en lettres de 1 à 2 millions, c-à-d le tableau où Excel fera la recherche de la valeur cherchée et enfin 2 correspond au numéro de la colonne qui contient les montants en lettres. Le problème est que cette colonne 2 ne contient que les montants de 1 à 65 536 et cela est largement faible et insuffisant comme montant d'une facture. Alors j'ai plusieurs autres colonnes contenant la suite des ces montants. Peut-on alors insérer plusieurs numéros de colonnes dans une même formule RECHERCHEV lorsque toutes les cellules d'une colonne ne suffit pas à contenir les données à chercher?


12 réponses

dobo69 Messages postés 1587 Date d'inscription vendredi 24 juillet 2009 Statut Membre Dernière intervention 30 juin 2013 824
14 juil. 2010 à 18:32
bonjour,

Le plus simple pour répondre à la question précisément posée :
Vous pouvez déposer un fichier exemple (sans infos confidentielles) sur http://www.cijoint.fr/ et coller le lien fourni par le site sur votre prochain message

Par contre, pouvez vous expliquer pourquoi vous n'insérer pas directement la fonction ConvNumberLetter directement dans votre feuille facture.....?
0
Salut Dobo69.
Je vous remercie de votre réponse rapide qui m'a tellement soulagé. Evidemment la solution est tout simplement insérer la fonction ConvNumberLetter directement dans ma feuille facture ainsi que vous me le conseillez. Je me demande comment j'y ai pas pensé. je dois être totalement fou pour n'y avoir pas pensé. votre réponse est effective et je ne regrette pas une seule seconde de m'être inscrit sur votre page et d'avoir posté mon problème. Une fois de plus merci. Cependant, est ce possible quand même d'insérer plusieurs numéros de colonnes dans une même formule RECHERCHEV ? pourriez-vous me répondre sans mon fichier ? ou alors il vous faut toujours mon fichier pour comprendre ma question ?
0
dobo69 Messages postés 1587 Date d'inscription vendredi 24 juillet 2009 Statut Membre Dernière intervention 30 juin 2013 824
14 juil. 2010 à 19:13
Il n'est effectivement pas possible de répondre précisément pour votre fichier particulier.
Cependant la réponse passe par "l'autre méthode" de recherche en base de donnée qui est le 'couple' INDEX(EQUIV et qui permet beaucoup plus de souplesse dans la définitions des plages et colonnes de recherche
Pour des illustrations et des explications :
Il n'est effectivement pas possible de répondre précisément
0
Ok je verrais la possibilité de vous envoyer mon fichier demain car il est un peu lourd (près de 30 colonnes sont saisies entièrement) et je jetterai également un oeil sur le focntion INDEX(EQUIV. Par contre, j'ai renseigné la formule = ConvNumberLetter et effectivement, la conversion s'effectue avec succès. Le seul bémole est qu'il mentionne la virgule quand bien même j'ai supprimé les décimales sur les chiffres. Cette fonction = ConvNumberLetter est une macro complémentaire que j'ai eue sur votre site et elle ne s'affiche pas encore sur mes fonctions excel. j'ai téléchargé le lien pour pouvoir l'intégrer dans mes fonctions excel de manière qu'elle s'affiche toute seule en raccourci. cela me permettrait peut-être de lire quelque chose sur cette fonction de conversion. si vous pouvez juste me dire comment faire pour ne pas mentionner les décimales en lettres.
0
dobo69 Messages postés 1587 Date d'inscription vendredi 24 juillet 2009 Statut Membre Dernière intervention 30 juin 2013 824
14 juil. 2010 à 19:51
il manquait le lien des explications :
http://www.top-assistante.com/bureau/excel/recherchev6.php
Quand au "pb" evoqué : je ne comprends pas, la fonction n'écrit pas 'virgule' s'il n'y a pas de décimale... donc pas de réponse comma ca...
0
eh oui, il y a bien la mention de la virgule dans la somme en lettres. je vous donne un exemple. quand vous faites 525 + 18% de 525 ça vous donne 619.50. bien entendu j'ai supprimé les décimales sur 619.50. ce qui me donne finalement 620. seulement ce montant en lettres donne: six cent dix-neuf virgule cinquante avec la fonction = ConvNumberLetter()
0
Raymond PENTIER Messages postés 58502 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 19 juin 2024 17 135
15 juil. 2010 à 06:01
"Cependant, est ce possible quand même d'insérer plusieurs numéros de colonnes dans une même formule RECHERCHEV ?"

La réponse est claire, nette et sans bavure : NON !
0
Raymond PENTIER Messages postés 58502 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 19 juin 2024 17 135
15 juil. 2010 à 06:03
Mais rien ne t'empêche d'additionner plusieurs fonctions RECHERCHE ...
0
Comment faire l'addition des fonctions RECHERCHEV ?? voici un exemple: Les lettres A B C D en haut sont les colonnes et les chiffres 1 2 3 4 à gauche sont les lignes.

A B C D
1 REFERENCE PRODUITS1 PRODUITS2 P U 2 202 tomates biscuits 652,36
3 203 bananes lait 263,33
4 204 pommes sucre 320,25

ce que je veux c'est une formule du type: =RECHERCHEV(une cellule quelconque; le tableau ci-dessus; la colonne B et aussi la colonne C). Car je veux que la recherche s'effectue et sur la colonne B et sur la colonne C. puisque les deux colonnes contiennent les produits dont j'ai besoin. Bien sûr vous allez me dire pourquoi pas mettre les produits de C dans B et faire la recherche sur la seule colonne B. La réponse est: imaginez que toutes les cellules de la colonne B soient saisies par des produits. je veux dire toutes les 65 536 cellules. Vous seriez bien obligés de créer une nouvelle colonne n'est ce pas ? mais cette nouvelle colonne que vous allez créer, il faut bien que la recherche se fasse là dessus aussi. ATTENTION le résultat de la recherche s'affichera sur une même cellule.
0
désolé mon tableau s'est mis dans en sens incompréhensible. Vous ne pouvez pas le comprendre. Puis-je vous envoyer le fichier excel par mail ?
0
dobo69 Messages postés 1587 Date d'inscription vendredi 24 juillet 2009 Statut Membre Dernière intervention 30 juin 2013 824
15 juil. 2010 à 09:01
Vous pouvez déposer un fichier exemple (sans infos confidentielles) sur http://www.cijoint.fr/ et coller le lien fourni par le site sur votre prochain message
0
Raymond PENTIER Messages postés 58502 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 19 juin 2024 17 135
15 juil. 2010 à 14:58
Oui, evelyno ; il est même indispensable que tu envoies ton fichier, parce que dans ton exemple la même référence et le même prix unitaire pour 2 produits différents, ça ne colle pas !
0
Raymond, je viens d'envoyer un fichier sur le système par le moyen prévu à cet effet. Il s'appelle "MON EXPLE". si tu peux le consulter pour comprendre mon souci même si j'avoue que tu l'avais déjà bien reconstitué hier
0
dobo69 Messages postés 1587 Date d'inscription vendredi 24 juillet 2009 Statut Membre Dernière intervention 30 juin 2013 824
16 juil. 2010 à 16:04
bonjour,

bien faire les manip suivantes sinon le fichier est inaccessible.. :
(Vous pouvez déposer un fichier exemple (sans infos confidentielles) sur http://www.cijoint.fr/ et coller le lien fourni par le site sur votre prochain message
0
Raymond, je viens d'envoyer un fichier sur le système par le moyen prévu à cet effet. Il s'appelle "MON EXPLE". si tu peux le consulter pour comprendre mon souci même si j'avoue que tu l'avais déjà bien reconstitué hier. Ci-dessous le lien: http://www.cijoint.fr/cjlink.php?file=cj201007/cijwaWHMxW.xlsx
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Raymond PENTIER Messages postés 58502 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 19 juin 2024 17 135
15 juil. 2010 à 15:16
En attendant d'avoir tes précisions, voici 2 exemples de ce qu'on peut faire :

https://www.cjoint.com/?hppqKuInyE
0
Raymond PENTIER Messages postés 58502 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 19 juin 2024 17 135
16 juil. 2010 à 16:55
evelyno, je te demanderai à l'avenir de ne plus utiliser le bouton "Ajouter un commentaire" pour répondre, mais "J'ai une réponse".

Ton exemple de tableau est inexploitable, car une même référence sert à 2 produits différents ! c'est comme si 2 personnes avaient le même N° de Sécurité Sociale !

Ton tableau doit comporter 6 colonnes : ref / prod / PU / ref / prod / PU
(je te l'avais déjà signalé le 15 jui 2010 à 14:58) ou 9, ou 12 ...

Mais pourquoi te casses-tu la tête avec tes 65 536 lignes, alors que tu es passé sur excel 2007 qui en accepte 1 048 576 ?
0
Raymond
Je dois reconnaître que mon problème est un peu compliqué et bizarre en même temps. Je te donne raison sur le fait qu'une référence ne peut pas être attribuée à deux produits différents. Disons que c'était le seul moyen que j'avais pour te faire comprendre mon souci. On peut alors dire qu'il était plus compréhensible sans le tableau. je vais alors m'expliquer à nouveau plus clairement. Dis moi s'il te plait si tu comprends vraiment ce que je veux exprimer. Imagine que tu gères un stock de plusieurs références d'articles. (je travaille dans une boîte qui gère plus d'un milliards de références différentes de pièces de rechange). chaque réf évidemment correspond à un article. on est d'accord que tu ne peux pas aligner dans une colonne nommée " désignation articles" 1 milliard d'articles, le nombre de lignes d'une seule colonne ne te le permettant pas. tu es obligé de décaler les autres articles dans une autre colonne ainsi de suite. le problème c'est que je veux faire renvoyer sur une seule cellule donnée (pas deux ou plus) le nom d'un article après avoir saisi quelque part sa référence. ton addition des deux fonctions RECHERCHEV fait afficher les articles des deux colonnes faisant partie de ta fonction, ce qui ne correspond pas à ce que je veux. je suis d'accord pour l'analogie avec le numéro de sécurité sociale qui ne peut appartenir qu'à un seul individu. Mais dans ce genre de cas, comment gérerais-tu cette opération.
0
dobo69 Messages postés 1587 Date d'inscription vendredi 24 juillet 2009 Statut Membre Dernière intervention 30 juin 2013 824
Modifié par dobo69 le 16/07/2010 à 17:02
bonjour,

il n'y a pas de solutions 'toute faite' pour renvoyer le numéro de ligne ou de colonne d'une cellule dans une plage à deux dimensions (plusieurs lignes et plusieurs colonnes). Cela est relativement simple à faire en VBA via une fonction personnalisée de ce type :
Public Function lignoucol(cellule As Range, selection As Range, Optional choix As Byte = 0) 
'renvoi la ligne ou la colonne d'une référence dans une plage (sélection) 
'correspondant à la valeur de la cellule de recherche 
'1°argument = cellule critère de recherche 
'2°argument = plage de recherche 
'3°argument : (facultatif) si 0 ou rien la fonction renverra la colonne, si valeur >= 1 renvoi la ligne 
For Each Cell In selection 
    If Cell.Value = cellule.Value Then 
        If choix = 0 Then 
            lignoucol = Cell.Column 
        Else: lignoucol = Cell.Row 
        End If 
    End If 
Next 
End Function


Fonction de principe encore à compléter : ne gère pas en l'état d'erreurs ou autres cas pour l'instant non identifiés...

Une fois ce code disposé dans un module VBA, l'utiliser comme une fonction excel 'classique' :
=LIGNOUCOL(A1;B1:C100;0) ou
LIGNOUCOL(A1;B1:C100)
recherche la valeur de A1 dans la plage B1:C100 et renvoi le numéro de colonne de la cellule trouvée.

=LIGNOUCOL(A1;B1:C100;1)
recherche la valeur de A1 dans la plage B1:B100 et renvoi le numéro de ligne de la cellule trouvée.
Attention, ne traite pas les valeurs multiples...
Si vous n'avez besoin de rien, demandez-moi.
0
dobo69 Messages postés 1587 Date d'inscription vendredi 24 juillet 2009 Statut Membre Dernière intervention 30 juin 2013 824
Modifié par dobo69 le 16/07/2010 à 17:04
Après, pour revenir au fichier joint : je "plussoie" Raymond sur le coté inexploitable du tableau...
0
Désolé Raymond, j'ai encore utilisé le bouton "Ajouter un commentaire" tout à l'heure. je fais copier coller de mon intervention que je viens de valider il y a deux minutes: la voici:

Raymond
Je dois reconnaître que mon problème est un peu compliqué et bizarre en même temps. Je te donne raison sur le fait qu'une référence ne peut pas être attribuée à deux produits différents. Disons que c'était le seul moyen que j'avais pour te faire comprendre mon souci. On peut alors dire qu'il était plus compréhensible sans le tableau. je vais alors m'expliquer à nouveau plus clairement. Dis moi s'il te plait si tu comprends vraiment ce que je veux exprimer. Imagine que tu gères un stock de plusieurs références d'articles. (je travaille dans une boîte qui gère plus d'un milliards de références différentes de pièces de rechange). chaque réf évidemment correspond à un article. on est d'accord que tu ne peux pas aligner dans une colonne nommée " désignation articles" 1 milliard d'articles, le nombre de lignes d'une seule colonne ne te le permettant pas. tu es obligé de décaler les autres articles dans une autre colonne ainsi de suite. le problème c'est que je veux faire renvoyer sur une seule cellule donnée (pas deux ou plus) le nom d'un article après avoir saisi quelque part sa référence. ton addition des deux fonctions RECHERCHEV fait afficher les articles des deux colonnes faisant partie de ta fonction, ce qui ne correspond pas à ce que je veux. je suis d'accord pour l'analogie avec le numéro de sécurité sociale qui ne peut appartenir qu'à un seul individu. Mais dans ce genre de cas, comment gérerais-tu cette opération.
_______________________________________________________
0
Raymond PENTIER Messages postés 58502 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 19 juin 2024 17 135
16 juil. 2010 à 18:48
C'est bien , evelyno, c'est bien !

J'aimerais te dire tout d'abord que pour gérer un fichier d'un milliard d'articles, un simple logiciel de bureautique n'est pas approprié ; il te faudrait un progiciel.
Si tu veux rester dans une configuration "amateur", donne la préférence à Access par rapport à Excel : les données étant enregistrées sur le disque au fur et à mesure de leur saisie, il n'y a plus de limitation de nombre ; seule la taille de ta mémoire pourrait devenir un obstacle.

Toutefois, je m'en vais réfléchir à un autre procédé sur Excel. Mais confirme-moi que tu n'as bien que 3 données par article : la référence, le nom et le prix unitaire. Il ne faudrait pas qu'après avoir reçu ma proposition (si je parviens à un résultat) tu me dises "Oui, mais finalement je dois ajouter la marque, le modèle et le taux de TVA applicable" !
0
Mon cher raymond

Je suis content que tu aies compris mon problème. Tu vois, il n'était pas si bête. Il va d'ailleurs te permettre de réfléchir(rires). T'en fais pas pour le reste. je n'ajouterais plus autre chose une fois j'aurais éventuellement obtenu satisfaction à ma préoccupation. Je te laisse le WK pour me répondre. Prends ton temps. Il n'y a rien qui presse. Bien de choses.
Ciao
0
ABOUMAWAN Messages postés 5 Date d'inscription mardi 18 novembre 2008 Statut Membre Dernière intervention 24 août 2010
29 juil. 2010 à 10:40
peut étre qu'il faut concatener la réf et le produit
0
Raymond PENTIER Messages postés 58502 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 19 juin 2024 17 135
16 juil. 2010 à 19:55
Désolé ! J'ai essayé avec ADRESSE, EQUIV, RECHERCHE, INDEX : rien à faire.
Il va falloir compter sur les praticiens de VBA pour te fabriquer une macro ...
Salut.
0
dobo69 Messages postés 1587 Date d'inscription vendredi 24 juillet 2009 Statut Membre Dernière intervention 30 juin 2013 824
16 juil. 2010 à 19:58
0
Raymond PENTIER Messages postés 58502 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 19 juin 2024 17 135
16 juil. 2010 à 23:13
Je suppose que c'est à evelyno que tu poses la question ?
Moi, je n'y connais rien ; je n'ai pas d'avis, parce que je n'ai pas essayé ...
0
ABOUMAWAN Messages postés 5 Date d'inscription mardi 18 novembre 2008 Statut Membre Dernière intervention 24 août 2010
29 juil. 2010 à 10:39
j'aimerai voir le fichier exemple, peut étre que l'ai la solution.
merci.
0