VBA + Recherche dans chaine de caractere
arnold17
Messages postés
1
Date d'inscription
Statut
Membre
Dernière intervention
-
via55 Messages postés 14512 Date d'inscription Statut Membre Dernière intervention -
via55 Messages postés 14512 Date d'inscription Statut Membre Dernière intervention -
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.
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:
- VBA + Recherche dans chaine de caractere
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Caractère ascii - Guide
- Caractère spéciaux - Guide
- Caractere speciaux - Guide
- Chaine tnt gratuite sur mobile - Guide
2 réponses
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
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
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 :
Cdlmnt
Via
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