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

Désaccentuer en VBA

3 réponses
Avatar
M41
Bonjour

En dehors de l'utilisation d'un programme reposant sur une correspondance
entre :

Const Accentué As String =
"ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÌÍÎÏìíîïÙÚÛÜùúûüÿÑñÇç"
Const NonAccentué As String =
"AAAAAAaaaaaaOOOOOOooooooEEEEeeeeIIIIiiiiUUUUuuuuyNnCc"

Existe t il une combinaison de fonctions VBA pour désaccentuer un texte ?

Cordialement

M41

3 réponses

Avatar
philou36
Bonjour,

j'ai récupéré cette macro, te convient elle ??

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




On 3 déc, 01:53, "M41" wrote:
Bonjour

En dehors de l'utilisation d'un programme reposant sur une correspondance
entre :

Const Accentué As String =
"ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöø ÈÉÊËèéêëÌÍÎÏìíîïÙÚÛÜùúûüÿ ÑñÇç"
Const NonAccentué As String =
"AAAAAAaaaaaaOOOOOOooooooEEEEeeeeIIIIiiiiUUUUuuuuyNnCc"

Existe t il une combinaison de fonctions VBA pour désaccentuer un texte ?

Cordialement

M41


Avatar
isabelle
bonjour M41,

il est possible de faire une fonction personnalisé :

Function SansAccent(cellule As Range)
AAccent = Array("À", "Á", "Â", "Ã", "Ä", "Å", "à", "á", "â", "ã", "ä",
"å", "Ò", "Ó", _
"Ô", "Õ", "Ö", "Ø", "ò", "ó", "ô", "õ", "ö", "ø", "È", "É", "Ê", "Ë",
"è", "é", "ê", _
"ë", "Ì", "Í", "Î", "Ï", "ì", "í", "î", "ï", "Ù", "Ú", "Û", "Ü", "ù",
"ú", "û", "ü", _
"ÿ", "Ñ", "ñ", "Ç", "ç")
SAccent = Array("A", "A", "A", "A", "A", "A", "a", "a", "a", "a", "a",
"a", "O", "O", _
"O", "O", "O", "O", "o", "o", "o", "o", "o", "o", "E", "E", "E", "E",
"e", "e", "e", _
"e", "I", "I", "I", "I", "i", "i", "i", "i", "U", "U", "U", "U", "u",
"u", "u", "u", _
"y", "N", "n", "C", "c")
x = [cellule]
For i = LBound(AAccent) To UBound(SAccent)
x = Application.Substitute(x, AAccent(i), SAccent(i))
Next
SansAccent = x
End Function


isabelle

M41 a écrit :
Bonjour

En dehors de l'utilisation d'un programme reposant sur une correspondance
entre :

Const Accentué As String =
"ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÌÍÎÏìíîïÙÚÛÜùúûüÿÑñÇç"
Const NonAccentué As String =
"AAAAAAaaaaaaOOOOOOooooooEEEEeeeeIIIIiiiiUUUUuuuuyNnCc"

Existe t il une combinaison de fonctions VBA pour désaccentuer un texte ?

Cordialement

M41





Avatar
M41
Bonsoir et merci

A quelques nuances près on aboutit donc toujours comme présenti à une
procédure itérative programmée
On ne peut rien faire par une simple combinaison de fonctions basiques basic
sur un libellé entier.

Cordialement

M41


"isabelle" a écrit dans le message de news:

bonjour M41,

il est possible de faire une fonction personnalisé :

Function SansAccent(cellule As Range)
AAccent = Array("À", "Á", "Â", "Ã", "Ä", "Å", "à", "á", "â", "ã", "ä",
"å", "Ò", "Ó", _
"Ô", "Õ", "Ö", "Ø", "ò", "ó", "ô", "õ", "ö", "ø", "È", "É", "Ê", "Ë", "è",
"é", "ê", _
"ë", "Ì", "Í", "Î", "Ï", "ì", "í", "î", "ï", "Ù", "Ú", "Û", "Ü", "ù", "ú",
"û", "ü", _
"ÿ", "Ñ", "ñ", "Ç", "ç")
SAccent = Array("A", "A", "A", "A", "A", "A", "a", "a", "a", "a", "a",
"a", "O", "O", _
"O", "O", "O", "O", "o", "o", "o", "o", "o", "o", "E", "E", "E", "E", "e",
"e", "e", _
"e", "I", "I", "I", "I", "i", "i", "i", "i", "U", "U", "U", "U", "u", "u",
"u", "u", _
"y", "N", "n", "C", "c")
x = [cellule]
For i = LBound(AAccent) To UBound(SAccent)
x = Application.Substitute(x, AAccent(i), SAccent(i))
Next
SansAccent = x
End Function


isabelle

M41 a écrit :
Bonjour

En dehors de l'utilisation d'un programme reposant sur une correspondance
entre :

Const Accentué As String =
"ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÌÍÎÏìíîïÙÚÛÜùúûüÿÑñÇç"
Const NonAccentué As String =
"AAAAAAaaaaaaOOOOOOooooooEEEEeeeeIIIIiiiiUUUUuuuuyNnCc"

Existe t il une combinaison de fonctions VBA pour désaccentuer un texte ?

Cordialement

M41