OVH Cloud OVH Cloud

Signes diactitiques

5 réponses
Avatar
xyzDaniel M
Bonjour,
Lors d'une comparaison entre deux libell=E9s, comment=20
traiter les signes diacritiques contenus dans un seul des=20
libell=E9s ?
Exemples : <St=E9phane> est diff=E9rent de <Stephane>,=20
<Mich=E8le> de <Michele>, <Fran=E7ois> de <Francois>.=20
Que faire pour que les =E9, =E8, =EA soient transform=E9es en e ?
Remerciements anticip=E9s.

5 réponses

Avatar
Daniel.M
Salut Daniel,

À part transformer une chaîne en lui enlevant ses accents, je ne vois pas.
Fais une recherche sur Google Groups
(http://groups.google.com/advanced_group_search?hl=fr) pour trouver les
fonctions VBA SansAccents ou MultiSubstitute.

Ainsi, pour comparer A1 avec B1, tu pourras faire
¡=SansAccents(B1)

ou en VBA:
bSemblables = (Range("A1") = SansAccents(Range("B1")))

Salutations,

Daniel M.

"xyzDaniel M" wrote in message
news:063901c3c555$4a427ff0$
Bonjour,
Lors d'une comparaison entre deux libellés, comment
traiter les signes diacritiques contenus dans un seul des
libellés ?
Exemples : <Stéphane> est différent de <Stephane>,
<Michèle> de <Michele>, <François> de <Francois>.
Que faire pour que les é, è, ê soient transformées en e ?
Remerciements anticipés.
Avatar
AV
Il y a ça aussi :

Function Virer_Accents$(chaine$)'AV
Dim tmp$
tmp = Trim(chaine)
For i = 1 To Len(tmp)
x = Asc(Mid(tmp, i, 1))
Select Case x
Case 192 To 197: x = "A": Case 200 To 203: x = "E"
Case 204 To 207: x = "I": Case 209: x = "N"
Case 210 To 214: x = "O": Case 217 To 220: x = "U"
Case 221: x = "Y": Case 224 To 229: x = "a"
Case 232 To 235: x = "e": Case 236 To 239: x = "i"
Case 241: x = "n": Case 240, 242 To 246: x = "o"
Case 249 To 252: x = "u": Case 253, 255: x = "y"
Case Else: x = Chr(x)
End Select
Virer_Accents = Virer_Accents & x
Next
End Function

AV.
Avatar
xyzDaniel M
Bonjour,
Merci pour vos réponses.
Entre temps, je suis tombé en cherchant dans l'aide sur
l'instruction <Replace>.
chn1 = Replace(chn1, "à", "a", 1)
Bien sûr, il faut une ligne par signe diacritique. Mais
comme je traite cellule par cellule et non un bloc entier,
cela me convient.
Néanmoins je garde vos solutions pour des traitements plus
ambitieux.
Merci beaucoup.

-----Message d'origine-----
Bonjour,
Lors d'une comparaison entre deux libellés, comment
traiter les signes diacritiques contenus dans un seul des
libellés ?
Exemples : <Stéphane> est différent de <Stephane>,
<Michèle> de <Michele>, <François> de <Francois>.
Que faire pour que les é, è, ê soient transformées en e ?
Remerciements anticipés.
.



Avatar
AV
chn1 = Replace(chn1, "à", "a", 1)

Bien sûr, il faut une ligne par signe diacritique. Mais
comme je traite cellule par cellule et non un bloc entier,
cela me convient.


Tu as une idée du nbre de lignes de code qu'il va te falloir pour traiter une
seule cellule ?
;-)
AV

Avatar
xyzDaniel M
Bonjour,
J'en ai généré quinze pour le moment car je n'ai que les
signes diacritiques français. Mais je pourrai substituer
ultérieuremenr mes lignes par les tiennes car
effectivement je vais avoir des noms en provenance de
l'Europe. Donc acte. Et merci pour la boucle.

-----Message d'origine-----
chn1 = Replace(chn1, "à", "a", 1)

Bien sûr, il faut une ligne par signe diacritique. Mais
comme je traite cellule par cellule et non un bloc
entier,


cela me convient.


Tu as une idée du nbre de lignes de code qu'il va te
falloir pour traiter une

seule cellule ?
;-)
AV


.