Astuce VBA : inverser une chaîne de caractères

Pour inverser une chaîne de caractères en VBA, inutile de chercher à le faire manuellement en utilisant une boucle car une fonction existe déjà pour cela !

Il s'agit de la fonction StrReverse.

StrReverse("ma_chaîne_à_inverser")


Exemple simple d'inversion

Inversion d'un prénom en utilisant la fonction StrReverse :

Sub inversion()

    prenom = "Jean-Michel" 'Valeur : Jean-Michel
   
    inverse = StrReverse(prenom) 'Valeur : lehciM-naeJ
       
End Sub

Fonction palindrome

Un palindrome est un mot ou un groupe de mots qui peut se lire indépendamment dans les 2 sens.

Pour tester si une chaîne de caractères est un palindrome, il suffit donc de vérifier si sa valeur est égale à sa valeur inversée.

Voici donc une fonction simple qui permet de tester cela et renvoie True si c'est un palindrome ou False si ce n'est pas le cas :

Function palindrome(valeur)
    palindrome = IIf(StrReverse(valeur) = valeur, True, False)
End Function

Si vous souhaitez utiliser cette fonction sur une feuille Excel, utilisez plutôt cette version (et placez-la dans un module) :

Function PALINDROME(valeur)
    Application.Volatile
    PALINDROME = IIf(StrReverse(valeur) = valeur, True, False)
End Function
excel-fonction-palindrome - vba-inverser-chaine-caracteres