Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Renvoyer le texte d'une cellule sans les accents

3 réponses
Avatar
géjoun
Bonjour,

J'ai fouillé dans les archives, mais j'arrive pas à trouver si il existe
t'il une formule qui permette de renvoyer du texte dasn une autre cellule en
supprimant les accents et cédilles de celui-ci. Est-ce que ça existe sans
passer par une macro?

Merci!
--
géjoun

3 réponses

Avatar
FdeCourt
Salut,

Avec une formule de base d'Excel, je ne pense pas, par compte, tu as
la macro suivante qui fonctionne très bien :

Function SansAccent(texte As String)
Dim baseA As String, baseB As String, i As Long, pot As Long, tmp
As String
baseA = "ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòó ôõöøÈÉÊËèéêëÌÍÎÏìíîïÙÚÛÜù úûüÿÑñÇç_"
baseB = "AAAAAAaaaaaaOOOOOOooooooEEEEeeeeIIIIiiiiUUUUuuuuyNnCc "
tmp = texte
For i = 1 To Len(tmp)
pot = InStr(avec, Mid(tmp, i, 1))
If pot > 0 Then Mid(tmp, i, 1) = Mid(sans, pot, 1)
Next i
If tmp = 0 Then tmp = ""
SansAccent = tmp
End Function

J'ai honte, je ne retrouve plus qui l'avait écrit !!!! je recherche !

Cordialement,

F.
Avatar
isabelle
bonjour,

sans vba je ne crois pas que ce soit possible,
tu pourrais copier cette fonction perso dans une page d'un module du
fichier perso
et l'utilisé dans n'importe lequel des classeurs,
=PERSO.XLS!SansAccent(A1)

Function SansAccent(chaine)
codeA = "ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÌÍÎÏìíîïÙÚÛÜùúûüÿÑñÇç"
codeB = "AAAAAAaaaaaaOOOOOOooooooEEEEeeeeIIIIiiiiUUUUuuuuyNnCc"
temp = chaine
For i = 1 To Len(temp)
p = InStr(codeA, Mid(temp, i, 1))
If p > 0 Then Mid(temp, i, 1) = Mid(codeB, p, 1)
Next
SansAccent = temp
End Function

isabelle

Le 2010-01-12 10:06, géjoun a écrit :
Bonjour,

J'ai fouillé dans les archives, mais j'arrive pas à trouver si il existe
t'il une formule qui permette de renvoyer du texte dasn une autre cellule en
supprimant les accents et cédilles de celui-ci. Est-ce que ça existe sans
passer par une macro?

Merci!



Avatar
géjoun
isabelle nous expliquait:

sans vba je ne crois pas que ce soit possible,
tu pourrais copier cette fonction perso dans une page d'un module du
fichier perso
et l'utilisé dans n'importe lequel des classeurs,
=PERSO.XLS!SansAccent(A1)

Function SansAccent(chaine)
codeA = "ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÌÍÎÏìíîïÙÚÛÜùúûüÿÑñÇç"
codeB = "AAAAAAaaaaaaOOOOOOooooooEEEEeeeeIIIIiiiiUUUUuuuuyNnCc"
temp = chaine
For i = 1 To Len(temp)
p = InStr(codeA, Mid(temp, i, 1))
If p > 0 Then Mid(temp, i, 1) = Mid(codeB, p, 1)
Next
SansAccent = temp
End Function

isabelle



Bonjour,

C'est bien ce que je pensais que ce n'était pas possible sans VBA, vu que
j'avais rien trouvé dans les archives.
Je vais me débrouiller avec le code que vous m'avez donné.

Merci à vous deux!

--
géjoun