Après avoir vu l’extraction d’un token particulier depuis le début de la chaîne de caractère, je vous présente sa version depuis la fin de la chaîne.
Objectif
Extraire un token par son numéro d’apparition dans une chaîne de caractère mais en partant de la fin de la chaîne.
Par exemple, de la chaîne ‘ab-cd-ef-gh’ je souhaite extraire ‘ef’ qui est l’avant-dernier token (ou sous-chaîne délimitée) depuis le dernier caractère séparateur ‘-‘, ou bien le dernier token (‘gh’), le 3ème (‘cd’),…
Comment faire simple ?
Pour ne pas réinventer la roue , je me suis appuyé sur notre fonction TokenBySplit() et la fonction standard VBA StrReverse() qui inverse la chaîne de caractère passée en argument (‘ab’ deviendra ‘ba’).
La fonction
'Retourne le token spécifié par son numéro à partir de la fin de la chaîne de caractère
'Auteur : Philben - v1.0
'Exemple : TokenReverse("ab-cd-ef-gh","-",2) -> ef (2ème token en partant de la fin)
TokenReverse = StrReverse(TokenBySplit(StrReverse(Texte), Separateur, Numero, TypeComparaison))
End Function
Exemples
?TokenReverse("ab-cd-ef-gh","-",2) 'ef
?TokenReverse("ab-cd-ef-gh","-",3) 'cd
?TokenReverse("ab-cd-ef-gh","-",4) 'ab
?TokenReverse("ab-cd-ef-gh","-",5) 'Nada !
@+
Philippe