VBA + Recherche dans chaine de caractere

Fermé
arnold17 Messages postés 1 Date d'inscription vendredi 13 juillet 2018 Statut Membre Dernière intervention 13 juillet 2018 - 13 juil. 2018 à 14:28
via55 Messages postés 14495 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 7 novembre 2024 - 13 juil. 2018 à 15:29
Bonjour,

Après maintes tentatives avec les fonctions trouve, recherchev, + boucle
je n'arrive pas à croiser 2 fichiers:
voilà, je récupère un fichier de ma banque (1500 lignes par mois)

dans le premier onglet, j'ai une colonne avec :

PAIEMENT CB xxxxxx COFIROUTE CARTE xxxxx
PAIEMENT CB xxxxxx POITIERS PAIN ET COMPAGNI CARTE xxxxx
PRLV SEPA GIE KLESIA COTIS xxxx RETRAITE - GIE KLESIA COTIS xxxxx
PAIEMENT CB xxxxxx COFIROUTE CARTE xxxxx
PRLV SEPA NEXECUR PROTECTION xxxx xxxxxxxx
EFFET DOMICILIE xxxxx xxxxxxx xxxx PRANAROM FRANCE
EFFET DOMICILIE xxxxx xxxxxxx xxxx WELEDA
...

Dans le deuxième onglet ma table de correspondance avec le N° de compte comptable:
à retrouver n°compte
COFIROUTE 401DIVERS
KLESIA 401KLESIA
NEXECURE 401NEXECUR
PAIN ET COM 401RESTO
PRANAROM 401PRANARO
WELEDA 401WELEDA

par exemple, rechercher le terme Cofiroute dans l'onglet 1, et indiquer dans la cellule suivante le N° de compte, ici 401DIVERS, puis le terme Klesia et indiquer 401KLESIA et ainsi de suite.

En espérant avoir été clair, je vous remercie par avance pour votre aide.
A voir également:

2 réponses

Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 414
Modifié le 13 juil. 2018 à 15:18
Bonjour
sans VBA avec formule, voyez si vous pouvez utiliser et adapter cet exemple qui, sauf erreur de compréhension correspond dans une de ses formules à ce que vous cherche(soit détecter les codes de F1:F6 dans la liste en A)

https://mon-partage.fr/f/YTfA8tqu/


revenez si besoin de complément
crdlmnt
0
via55 Messages postés 14495 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 7 novembre 2024 2 735
13 juil. 2018 à 15:29
Bonjour Arnold, amical coucou Vaucluse,

Ou bien une fonction personnalisée après avoir nommé correspondance la plage de la 1ere colonne de la table de correspondance et numeros sa 2eme colonne :
Function numcompte(plage As Range)
a = "?"
For Each cell In Range("correspondance")
If Application.WorksheetFunction.CountIf(plage, "*" & cell.Value & "*") = 1 Then a = Application.WorksheetFunction.Index(Range("numeros"), Application.WorksheetFunction.Match(cell.Value, Range("correspondance"), 0))
Next
numcompte = a
End Function


Cdlmnt
Via
0