Bonjour,
j'ai une macro XL dans laquelle j'aimerais faire une fonction qui traite une chaîne en entrée et qui renvoie
- soit la même chaîne
- soit la même chaîne moins le dernier caractère. (s'il ne fait pas partie de '0' à '9' ou de 'a' à 'f'... oui ça ressemble à de l'Hexa)

le code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
Function clrEndOfStr(ByVal strToClr) As String

Dim lastChar As String
    lastChar = Right(strToClr, 1)      
    If (lastChar Like [!0-9]) And (lastChar Like [!a-f]) Then
        strToClr = Left(strToClr, Len(strToClr) - 1)
    End If
    clrEndOfStr = strToClr
End Function
bien-sûr la partie en rouge, lorsqu'elle est évaluée crée une erreur "type mismatch".
Avez-vous une idée de pourquoi ?
Qu'est ce que je fais mal ?

merci