Bonjour
J’ai actuellement besoin de créer une fonction perso LIBELLE(celluleX) afin de trier des infos textes.
Les cellules sont issues de relevés bancaires, tels :
"COM INTERVENTION…", "CHEQUE 000…", "PRLV SEPA URSAFF…", "FRAIS…"
Après m’être intéressé à une formule dans une cellule, je me rend compte (sauf erreur) que ce n’est pas assez poussé pour parvenir à un tri efficace.
Exemple :
=IF(EXACT( REGEX(D3;"(.+)?(ESSO|PEAGE|STATION)(.+)";"dep";1); "dep"); "Deplacements" ; "-" )
Je voudrais donc créer une fonction comme ceci, que j’intègrerais dans la cellule de mon choix : =LIBELLE(D3)
Function libelle(C)
if C.test (VIR|CHEQUE) retourne "paiement client"
else if C.test (PEAGE|STATION) retourne "déplacement"
else if C.test (FRAIS|ARRETE) retourne "frais bancaires"
else C.test (URSAFF) retourne "impots"
End Function
Seulement, je n’ai pas trouvé le moyen de travailler avec des Regex sur le contenu de la cellule. Je découvre juste le Basic, et suis bien plus à l’aise avec du Javascript.
Je n’ai que des “BASIC runtime error. Object variable not set”. Exemple :
Function libelle(C)
R = C.createSearchDescriptor
R.SearchRegularExpression = True
R.SearchString = "(VIR|CHEQUE)"
found = C.FindFirst(R)
libelleType = found.String
End Function
Bref, votre aide sera la bienvenue.
Merci d’avance
Xavier.