Anomalie de Replace sur des chaines avec des accents

120a.xlsm (15.28 Ko)

Bonjour, j'ai des problèmes pour utiliser Replace pour remplacer un caractère avec un accent par un caractère sans accent dans une chaine de texte.

Voici le problème: Replace n'arrive pas à remplacer un caractère avec accent par un caractère sans accent lorsque celui-ci est issu d'une chaine de texte produite par une propriété ou une fonction. Je précise que le but de la manip est de pouvoir retirer les caractères interdits dans les titres de fichiers sur lesquels je dois opérer des macros.

Je dois préciser que j'utiliser Excel 16.16.14 sur MacOS Mojave 10.14.4.

Voici le code pour tester ce problème, ainsi que le résultat que j'ai obtenu dans le Debug. Le caractère spécial utilisé est issu du titre du fichier "0à.xlsm".

Option Explicit

End Sub

Dans le Debug est obtenu:

avec une fonction:

0a.xlsm

Je joins le fichier Excel. Est ce que certains d'entre vous connaissent le problème? Si l'un de vous pourrait essayer de faire tourner le fichier sur sa config et me faire part de son résultat, je lui serais infiniment reconnaissant. MERCI mille fois par avance

Hugo

120a.xlsm (15.28 Ko)

Bonjour,

je n'ai pas de Mac pour tester, mais en utilisant le code caractère ?

à = 224 en ASCII, voir si autre code sur Mac

    Fichier = ThisWorkbook.Name
    Debug.Print "avec une fonction:"
    Debug.Print Replace(Fichier, Chr(224), "a")

eric

Bonjour,

il s'agit probablement d'un problème de codage des caractères. le à dans ton nom de fichier n'a pas le même code que le à que tu mets dans ton instruction replace,

pour vérifier .

Sub aargh()
    fn = ThisWorkbook.FullName
    For i = 1 To Len(fn)
        st = st & " " & Mid(fn, i, 1) & "," & Asc(Mid(fn, i, 1))
    Next i
    MsgBox st
    MsgBox "à" & "," & Asc("à")
End Sub

Merci pour vos réponses,

Il y a bien un problème avec le code ASCII. Le "à" qui apparait dans mon titre semble inexistant en code ASCII, ou alors je il y a quelque chose que je fais pas.

En gros voilà ce que j'ai dans le Debug:

?ThisWorkbook.Name

a

C'est comme si la fonction Asc ignorait le "à".

J'ai l'impression que je me rapproche de la solution. Si vous avez encore un indice je suis preneur

Bon et bien j'ai fini par trouver l'information, si cela peut servir aux utilisateurs de Mac.

Excel sur Mac ne prend pas en compte la majorité des symboles (seuls 32 sont reconnus). Pour pouvoir gérer les autres symboles, il faudra passer par un Script Apple. Ces informations sont disponibles sur le site de Ron de Bruin.

https://www.rondebruin.nl/mac/applescripttask.htm

Merci à vous et salutations

Hugo

Rechercher des sujets similaires à "anomalie replace chaines accents"