Table de correspondance sous vba

Fermé
SOJEANS Messages postés 1 Date d'inscription samedi 19 octobre 2013 Statut Membre Dernière intervention 19 octobre 2013 - 19 oct. 2013 à 00:52
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 - 21 oct. 2013 à 16:14
Bonjour,
je dois gérer une table de correspondance avec des libellés légèrement, mais qui vont contenir un terme identique. je m'explique : ma source va affecter un numéro client à un nom de client. ex : Google client1. .... les extractions excel récupéré, le libellé sera REF VIRT GOOGLE 123456789..... donc la fonction recherchev ne fonctionne pas, même en aléatoire car j'ai énormément de données.
j'ai pensé à la fonction suivante : =SI(ESTERR(CHERCHE("google";A7));"compte absent";B7) , ici le nom du client est dans la colonne A et son numéro dans la colonne B

Elle fonctionne bien, mais je voudrais l'automatiser pour une centaine de clients. ma base de données fait peut-être 1000 ligne.

est-ce que vous pouvez m'aider ? ce serait génial d'avoir une solution (automatisé sur vba par ex)
Alex

4 réponses

PHILOU10120 Messages postés 6367 Date d'inscription lundi 16 avril 2012 Statut Contributeur Dernière intervention 2 avril 2024 795
19 oct. 2013 à 11:02
Bonjour

Il faut concaténer les cellules A7 et B7
dans ma formule A5 = REF VIRT GOOGLE 123456789.....

=SI(ESTERR(CHERCHE(A7&" "&B7;A5;1));"compte absent";B7)

j'espère que cela vous aidera
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 209
19 oct. 2013 à 12:14
Bonjour,

tu devrais déposer un fichier exemple (proche de la réalité au niveau structure), le déposer sur cjoint .com et coller ici le lien fourni.
Mets qcq exemples des différents cas et précise la structure du libellé :
-client toujours en 3ème position ?
-toujours un nombre derrière ?
-toujours VIRT devant ?
-toujours un seul mot ?
enfin tous les détails qui permettent de le repérer à coup sûr dans tous les cas.
0
bonjour à tous les deux,

merci de vos remarques. effectivement c'est compliqué à expliquer; j'ai joint un ex de fichier à l'adresse suivante : http://cjoint.com/13oc/CJvj7O8f0c1.html

en fait, j'essaye de gérer une table de correspondance avec des libellés qui ne sont pas identiques; mais on retrouve quasiment tout le temps le nom du fournisseur. onglet 1 : base de données à laquelle il faut affecter le numéro fournisseur; onglet 2 : table de correspondance avec nom fournisseur et son numéro.

please j'ai besoin d'une idée de génie ;-))))
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 209
Modifié par eriiic le 21/10/2013 à 14:09
Bonjour,

Tu n'as donné aucune réponse !!!
Mets qcq exemples des différents cas et précise la structure du libellé :
-client toujours en 3ème position ?
-toujours un nombre derrière ?
-toujours VIRT devant ?
-toujours un seul mot ?
enfin tous les détails qui permettent de le repérer le nom à coup sûr dans tous les cas.

Je ne suis pas du style à refaire les choses 4 fois car il manque toujours un détail ou des cas particuliers non cités.
De plus, sur tous les noms feuille1, il n'y en a que 3 présent dans la liste des codes. C'est ce que j'appelle un fichier de m... qui fait perdre du temps.

Voici donc une formule qui répond à tous les cas de ton exemple vu que tu n'as pas voulu mettre les différents cas. A toi d'adapter et de compléter si ça ne marche pas toujours.
En C2:
=RECHERCHEV(STXT(A2;CHERCHE(" ";A2;CHERCHE(" ";A2)+1)+1;99);fournisseurs;2;0)
A recopier vers le bas, retourne #N/A si non trouvé.

eric
0
Hello,

c'est que je ne peux pas vraiment répondre. La base de données est aléatoire. Il s'agit d'un libellé sur un relevé bancaire. par moment, le nom du fournisseur est devant , des fois au milieu, des fois à la fin.
la seule chose est qu'il est présenté sur le libellé.
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 209
21 oct. 2013 à 16:14
Donc je suppose que tu as testé la formule que je t'ai fournie (?) et que ça ne convient pas ?

Sans exemple impossible de répondre si c'est possible par formule, ou mème en vba.
Fournir les différents cas de libellé.1 ou 2 ligne de chaque cas est suffisant, et inscrit dans une colonne le nom à rechercher. Et ta base doit contenir tous les noms utilisés, allège ceux qui ne seront pas à rechercher.

Et si ç passe en vba préfères-tu une fonction personnalisée à saisir sur chaque ligne ?
Ou bien un bouton qui te retraite systématiquement toutes les lignes ? Ou seulement seules celles qui n'en n'ont pas ?
Répond clairement à toutes les questions et fournis un fichier plus représentatif. C'est ma dernière tentative ;-)
A toi de voir si tu préfères tout te palucher à la main.

eric
0