OVH Cloud OVH Cloud

Suppression des accents

41 réponses
Avatar
Michel NOLF
Bonjour à tous
Je voudrais pouvoir supprimer les accents d'une chaine de caractères. Il y
a-t-il un moyen sans être obligé de passer par un select case é,ù,î,ï etc.
Les caractères peuvent être en LCase ou UCase.
Merci pour votre aide
Michel

10 réponses

1 2 3 4 5
Avatar
Michel NOLF
Salut rural thierry
L'élegance de ton intervention ne peut pas me surprendre car je lis toujours
avec interet tes parutions sur ce forum
Encore une fois bravo

"ru-th" a écrit dans le message de
news:
Ah, voilà le prototype de raisonnement chirogourdiste :
l' aléatoirité (en Gypsien qui s'écrit de 2 façons Jspien ou gypsien
puisque

datant de la même époque géologique, on aurait dit l' Avéatoirité ) du
discours sémantique !
il était question "Il y a-t-il un moyen sans être obligé de passer par un
select case"
qu'une traduction perverse ou devrais dire perAVerse !, transforme en
"qu'on ne peut échapper à une boucle sur la chaîne"
Certes Daniel M. par son Multisubstitue avait déjà étudié dès 2002 (au
moins) le phénomène de non selectcasetitude de la problèmatique susdite
et

présentement évoquée, il n'empêche qu'un tel détournement sémantique ne
peut

être l'oeuvre d'un esprit tourmenté par le manque de lumière dû à un
séjour

cavernicole prolongé.
Je pense encore une fois par cette prise sur le fait avoir démontrer la
dangerosité de l'accoutumance de l'utilisation de sommeprod y compris dans
des domaines où on ne l'attendait point : la lecture discursive !
Et que l'on ne vienne pas me dire que je suis abscons ! (ni positif, ni
négatif, ni absolu)
;-))

--
a+
rural thierry
Veaux et Broutards d'Anjou
Wicasa on kin nape yapi inahni yo (à l'essai)

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

Chacun aura corrigé et lu "qu'on ne peut échapper à une boucle sur la
chaîne"

AV








Avatar
Michel NOLF
C'est ce que j'avais cru voir. Encore mille fois merci

"Herdet" a écrit dans le message de
news:
Bien vu, c'est sans problème
J'ai pris tous les caractères accentués avec code de 0 à 255 sans chercher
leurs utilisations potentielles
Qui peut le plus, peut le moins
J'ai aussi ajouté le ç au cas où.
Robert
---------------------------------------------------
Function Sans_accents(Chaine$) ' R. Dezan
' remplacement des caractères accentués
a = "SZszYÀÁÂÃÄÅÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝàáâãäåèéêëìíîïðñòóôõöùúûüýÿç"
b = "SZszYAAAAAAEEEEIIIINOOOOOUUUUYaaaaaaeeeeiiiionooooouuuuyyc"
Src = Chaine$
Dest = ""
For i = 1 To Len(Src)
car = Mid(Src, i, 1)
k = InStr(1, a, car, 0)
If k <> 0 Then Dest = Dest & Mid(b, k, 1) Else Dest = Dest &
car

Next
Sans_accents = Dest
'---- Testé sur 0ZnÁrÄPË43ÑertÔÙdwxÛâçérðpõûÿ
End Function

"Michel NOLF" a écrit dans le message de
news: %
Merci
Peut-on tremplacer la boucle "For j = 1 To Len(a)" par k=InStr(1, a,
car,


0)
Mid(a, k, 1) = car Then Dest = Dest & Mid(b, k, 1)
Autre question à titre purement documentaire: en quel langue a-t-on S et
Z


accentués
Merci d'avanc

"Herdet" a écrit dans le message de
news:O$
Oups, une petite erreur qui oubliait les caractères non accentués et
les



chiffres

Function Sans_accents(Chaine$) ' R. Dezan
' remplacement des caractères accentués
a = "SZszYÀÁÂÃÄÅÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝàáâãäåèéêëìíîïðñòóôõöùúûüýÿ"
b = "SZszYAAAAAAEEEEIIIINOOOOOUUUUYaaaaaaeeeeiiiionooooouuuuyy"
Src = Chaine$
Dest = ""
For i = 1 To Len(Src)
car = Mid(Src, i, 1)
If InStr(1, a, car, 0) <> 0 Then
For j = 1 To Len(a)
If Mid(a, j, 1) = car Then Dest = Dest & Mid(b,
j,
1): Exit For
Next
Else
Dest = Dest & car
End If
Next
Sans_accents = Dest
'---- Testé sur 0ZnÁrÄPË43ÑertÔÙdwxÛâçérðpõûÿ
End Function

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

Bonjour Michel,
Une solution VBA un peu plus générale sans Select Case ni codes ASCII
A adapter
Cordialement
Robert Dezan
-------------------------------------------------------
Function Sans_accents(Chaine$) ' R. Dezan
' remplacement des caractères accentués
a = "SZszYÀÁÂÃÄÅÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝàáâãäåèéêëìíîïðñòóôõöùúûüýÿ"
b = "SZszYAAAAAAEEEEIIIINOOOOOUUUUYaaaaaaeeeeiiiionooooouuuuyy"
Src = Chaine$
Dest = ""
For i = 1 To Len(Src)
Car = Mid(Src, i, 1)
If InStr(1, a, Car, 0) <> 0 Then
For j = 1 To Len(a)
If Mid(a, j, 1) = Car Then Dest = Dest &
Mid(b,




j,
1): Exit For
Next
End If
Next
Sans_accents = Dest
End Function


------------------------------------------------------------------------


"Michel NOLF" a écrit dans le
message




de
news: %
Bonjour à tous
Je voudrais pouvoir supprimer les accents d'une chaine de
caractères.





Il
y
a-t-il un moyen sans être obligé de passer par un select case
é,ù,î,ï





etc.
Les caractères peuvent être en LCase ou UCase.
Merci pour votre aide
Michel




















Avatar
Daniel.M
Et ben torvis!

J'hésite entre être flaté d'avoir été cité comme l'auteur d'une méthode
originale de résoudre ledit problème (et ce, dans une envolée oratoire qui
m'incite à vous laisser savoir à quel point vous me plûtes et vous m'épatâtes)
et le désir de ne pas trop appuyer les appels anti-SPA (alors que je me suis
auto-proclamé secrétaire à l'éradication de l'ambiguité de ladite association).

Pour le reste, tout baigne! :-)

Salutations amicales,

Daniel M.

P.S: C'est "Multisubstitute" pour ceux que les recherches googlesques
intéressent.


"ru-th" wrote in message
news:
Ah, voilà le prototype de raisonnement chirogourdiste :
l' aléatoirité (en Gypsien qui s'écrit de 2 façons Jspien ou gypsien puisque
datant de la même époque géologique, on aurait dit l' Avéatoirité ) du
discours sémantique !
il était question "Il y a-t-il un moyen sans être obligé de passer par un
select case"
qu'une traduction perverse ou devrais dire perAVerse !, transforme en
"qu'on ne peut échapper à une boucle sur la chaîne"
Certes Daniel M. par son Multisubstitue avait déjà étudié dès 2002 (au
moins) le phénomène de non selectcasetitude de la problèmatique susdite et
présentement évoquée, il n'empêche qu'un tel détournement sémantique ne peut
être l'oeuvre d'un esprit tourmenté par le manque de lumière dû à un séjour
cavernicole prolongé.
Je pense encore une fois par cette prise sur le fait avoir démontrer la
dangerosité de l'accoutumance de l'utilisation de sommeprod y compris dans
des domaines où on ne l'attendait point : la lecture discursive !
Et que l'on ne vienne pas me dire que je suis abscons ! (ni positif, ni
négatif, ni absolu)
;-))

--
a+
rural thierry
Veaux et Broutards d'Anjou
Wicasa on kin nape yapi inahni yo (à l'essai)

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

Chacun aura corrigé et lu "qu'on ne peut échapper à une boucle sur la
chaîne"

AV








Avatar
AV
être l'oeuvre d'un esprit tourmenté par le manque de lumière dû à un séjour
cavernicole prolongé.


Je ne répondrais que par cette petite piqure de rappel ** afin que chacun
s'impreigne profondément de la versatilité de l'individu !
**
http://groups.google.com/groups?hl=fr&lr=&c2coff=1&frame=right&thA05c3a8ea3f03
73&seekm£u9ag%24gg%241%40wanadoo.fr#link10

Pfff... les écrits restent !
AV

Avatar
Michel Pierron
Bounjour Robert;
Ton intéressante fonction est simplifiable:

Function Sans_accents$(Chaine$) ' R. Dezan
' remplacement des caractères accentués
a$ = "ÀÁÂÃÄÅÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝàáâãäåèéêëìíîïðñòóôõöùúûüýÿ"
b$ = "AAAAAAEEEEIIIINOOOOOUUUUYaaaaaaeeeeiiiionooooouuuuyy"
For i% = 1 To Len(Chaine)
u% = InStr(1, a, Mid(Chaine, i, 1), 0)
If u Then Mid(Chaine, i, 1) = Mid(b, u, 1)
Next i
Sans_accents = Chaine
End Function

Sub Test()
MsgBox Sans_accents("ÀÁÂÃÄÅÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝàáâãäåèéêëìíîïðñòóôõöùúûüýÿ")
MsgBox Sans_accents("0ZnÁrÄPË43ÑertÔÙdwxÛâçérðpõûÿ")
End Sub

MP

"Herdet" a écrit dans le message de
news:O$
Oups, une petite erreur qui oubliait les caractères non accentués et les
chiffres

Function Sans_accents(Chaine$) ' R. Dezan
' remplacement des caractères accentués
a = "SZszYÀÁÂÃÄÅÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝàáâãäåèéêëìíîïðñòóôõöùúûüýÿ"
b = "SZszYAAAAAAEEEEIIIINOOOOOUUUUYaaaaaaeeeeiiiionooooouuuuyy"
Src = Chaine$
Dest = ""
For i = 1 To Len(Src)
car = Mid(Src, i, 1)
If InStr(1, a, car, 0) <> 0 Then
For j = 1 To Len(a)
If Mid(a, j, 1) = car Then Dest = Dest & Mid(b, j,
1): Exit For
Next
Else
Dest = Dest & car
End If
Next
Sans_accents = Dest
'---- Testé sur 0ZnÁrÄPË43ÑertÔÙdwxÛâçérðpõûÿ
End Function

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

Bonjour Michel,
Une solution VBA un peu plus générale sans Select Case ni codes ASCII
A adapter
Cordialement
Robert Dezan
-------------------------------------------------------
Function Sans_accents(Chaine$) ' R. Dezan
' remplacement des caractères accentués
a = "SZszYÀÁÂÃÄÅÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝàáâãäåèéêëìíîïðñòóôõöùúûüýÿ"
b = "SZszYAAAAAAEEEEIIIINOOOOOUUUUYaaaaaaeeeeiiiionooooouuuuyy"
Src = Chaine$
Dest = ""
For i = 1 To Len(Src)
Car = Mid(Src, i, 1)
If InStr(1, a, Car, 0) <> 0 Then
For j = 1 To Len(a)
If Mid(a, j, 1) = Car Then Dest = Dest & Mid(b,
j,


1): Exit For
Next
End If
Next
Sans_accents = Dest
End Function
------------------------------------------------------------------------
"Michel NOLF" a écrit dans le message
de


news: %
Bonjour à tous
Je voudrais pouvoir supprimer les accents d'une chaine de caractères.
Il



y
a-t-il un moyen sans être obligé de passer par un select case é,ù,î,ï
etc.
Les caractères peuvent être en LCase ou UCase.
Merci pour votre aide
Michel












Avatar
Laurent Longre
Pour compléter la collection, dans un registre tout autre que tu connais bien...
;-)

Private Declare Function FoldString Lib "kernel32" Alias "FoldStringA" _
(ByVal dwMapFlags As Byte, ByVal lpSrcStr As String, ByVal cchSrc As Long, _
ByVal lpDestStr As String, ByVal cchdest As Long) As Long

Function SANSACCENTS(Texte As String) As String

Dim strTemp As String, C As String * 1
Dim cchdest As Long, I As Long
cchdest = FoldString(&H40, Texte, -1, strTemp, 0) - 1
strTemp = Space(cchdest)
FoldString &H40, Texte, -1, strTemp, cchdest
For I = 1 To cchdest
C = Mid(strTemp, I, 1)
If C Like "[!´`^¨~°¸]" Then SANSACCENTS = SANSACCENTS & C
Next I

End Function

Laurent

Bounjour Robert;
Ton intéressante fonction est simplifiable:

Function Sans_accents$(Chaine$) ' R. Dezan
' remplacement des caractères accentués
a$ = "ÀÁÂÃÄÅÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝàáâãäåèéêëìíîïðñòóôõöùúûüýÿ"
b$ = "AAAAAAEEEEIIIINOOOOOUUUUYaaaaaaeeeeiiiionooooouuuuyy"
For i% = 1 To Len(Chaine)
u% = InStr(1, a, Mid(Chaine, i, 1), 0)
If u Then Mid(Chaine, i, 1) = Mid(b, u, 1)
Next i
Sans_accents = Chaine
End Function

Sub Test()
MsgBox Sans_accents("ÀÁÂÃÄÅÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝàáâãäåèéêëìíîïðñòóôõöùúûüýÿ")
MsgBox Sans_accents("0ZnÁrÄPË43ÑertÔÙdwxÛâçérðpõûÿ")
End Sub

MP

"Herdet" a écrit dans le message de
news:O$

Oups, une petite erreur qui oubliait les caractères non accentués et les
chiffres

Function Sans_accents(Chaine$) ' R. Dezan
' remplacement des caractères accentués
a = "SZszYÀÁÂÃÄÅÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝàáâãäåèéêëìíîïðñòóôõöùúûüýÿ"
b = "SZszYAAAAAAEEEEIIIINOOOOOUUUUYaaaaaaeeeeiiiionooooouuuuyy"
Src = Chaine$
Dest = ""
For i = 1 To Len(Src)
car = Mid(Src, i, 1)
If InStr(1, a, car, 0) <> 0 Then
For j = 1 To Len(a)
If Mid(a, j, 1) = car Then Dest = Dest & Mid(b, j,
1): Exit For
Next
Else
Dest = Dest & car
End If
Next
Sans_accents = Dest
'---- Testé sur 0ZnÁrÄPË43ÑertÔÙdwxÛâçérðpõûÿ
End Function

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


Bonjour Michel,
Une solution VBA un peu plus générale sans Select Case ni codes ASCII
A adapter
Cordialement
Robert Dezan
-------------------------------------------------------
Function Sans_accents(Chaine$) ' R. Dezan
' remplacement des caractères accentués
a = "SZszYÀÁÂÃÄÅÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝàáâãäåèéêëìíîïðñòóôõöùúûüýÿ"
b = "SZszYAAAAAAEEEEIIIINOOOOOUUUUYaaaaaaeeeeiiiionooooouuuuyy"
Src = Chaine$
Dest = ""
For i = 1 To Len(Src)
Car = Mid(Src, i, 1)
If InStr(1, a, Car, 0) <> 0 Then
For j = 1 To Len(a)
If Mid(a, j, 1) = Car Then Dest = Dest & Mid(b,



j,

1): Exit For
Next
End If
Next
Sans_accents = Dest
End Function
------------------------------------------------------------------------
"Michel NOLF" a écrit dans le message



de

news: %

Bonjour à tous
Je voudrais pouvoir supprimer les accents d'une chaine de caractères.




Il

y
a-t-il un moyen sans être obligé de passer par un select case é,ù,î,ï
etc.
Les caractères peuvent être en LCase ou UCase.
Merci pour votre aide
Michel














Avatar
Michel Pierron
Grand merci Laurent; j'adore cette positive attitude.
;-) MP

"Laurent Longre" a écrit dans le message de
news:

Pour compléter la collection, dans un registre tout autre que tu connais
bien...

;-)

Private Declare Function FoldString Lib "kernel32" Alias "FoldStringA" _
(ByVal dwMapFlags As Byte, ByVal lpSrcStr As String, ByVal cchSrc As
Long, _

ByVal lpDestStr As String, ByVal cchdest As Long) As Long

Function SANSACCENTS(Texte As String) As String

Dim strTemp As String, C As String * 1
Dim cchdest As Long, I As Long
cchdest = FoldString(&H40, Texte, -1, strTemp, 0) - 1
strTemp = Space(cchdest)
FoldString &H40, Texte, -1, strTemp, cchdest
For I = 1 To cchdest
C = Mid(strTemp, I, 1)
If C Like "[!´`^¨~°¸]" Then SANSACCENTS = SANSACCENTS & C
Next I

End Function

Laurent

Bounjour Robert;
Ton intéressante fonction est simplifiable:

Function Sans_accents$(Chaine$) ' R. Dezan
' remplacement des caractères accentués
a$ = "ÀÁÂÃÄÅÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝàáâãäåèéêëìíîïðñòóôõöùúûüýÿ"
b$ = "AAAAAAEEEEIIIINOOOOOUUUUYaaaaaaeeeeiiiionooooouuuuyy"
For i% = 1 To Len(Chaine)
u% = InStr(1, a, Mid(Chaine, i, 1), 0)
If u Then Mid(Chaine, i, 1) = Mid(b, u, 1)
Next i
Sans_accents = Chaine
End Function

Sub Test()
MsgBox
Sans_accents("ÀÁÂÃÄÅÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝàáâãäåèéêëìíîïðñòóôõöùúûüýÿ")


MsgBox Sans_accents("0ZnÁrÄPË43ÑertÔÙdwxÛâçérðpõûÿ")
End Sub

MP

"Herdet" a écrit dans le message de
news:O$

Oups, une petite erreur qui oubliait les caractères non accentués et les
chiffres

Function Sans_accents(Chaine$) ' R. Dezan
' remplacement des caractères accentués
a = "SZszYÀÁÂÃÄÅÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝàáâãäåèéêëìíîïðñòóôõöùúûüýÿ"
b = "SZszYAAAAAAEEEEIIIINOOOOOUUUUYaaaaaaeeeeiiiionooooouuuuyy"
Src = Chaine$
Dest = ""
For i = 1 To Len(Src)
car = Mid(Src, i, 1)
If InStr(1, a, car, 0) <> 0 Then
For j = 1 To Len(a)
If Mid(a, j, 1) = car Then Dest = Dest & Mid(b,
j,



1): Exit For
Next
Else
Dest = Dest & car
End If
Next
Sans_accents = Dest
'---- Testé sur 0ZnÁrÄPË43ÑertÔÙdwxÛâçérðpõûÿ
End Function

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


Bonjour Michel,
Une solution VBA un peu plus générale sans Select Case ni codes ASCII
A adapter
Cordialement
Robert Dezan
-------------------------------------------------------
Function Sans_accents(Chaine$) ' R. Dezan
' remplacement des caractères accentués
a = "SZszYÀÁÂÃÄÅÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝàáâãäåèéêëìíîïðñòóôõöùúûüýÿ"
b = "SZszYAAAAAAEEEEIIIINOOOOOUUUUYaaaaaaeeeeiiiionooooouuuuyy"
Src = Chaine$
Dest = ""
For i = 1 To Len(Src)
Car = Mid(Src, i, 1)
If InStr(1, a, Car, 0) <> 0 Then
For j = 1 To Len(a)
If Mid(a, j, 1) = Car Then Dest = Dest & Mid(b,



j,

1): Exit For
Next
End If
Next
Sans_accents = Dest
End Function


------------------------------------------------------------------------
"Michel NOLF" a écrit dans le message



de

news: %

Bonjour à tous
Je voudrais pouvoir supprimer les accents d'une chaine de caractères.




Il

y
a-t-il un moyen sans être obligé de passer par un select case é,ù,î,ï
etc.
Les caractères peuvent être en LCase ou UCase.
Merci pour votre aide
Michel
















Avatar
Misange
En comparant la vitesse d'exécution, vos deux macros sont équivalentes
(2 sec pour traiter l'ensemble des réponses aux questions d'excelabo !)
Voilà qui m'a fait mettre immédiatement au placard ma petite fonction
avec des arrays !
Cela dit j'ai gardé celle de RD-MP, biscotte je la comprends...
Heu... t'explique là Laurent ? c'est quoi le foldstring ?

Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta

Le 16/02/2005 13:01, :

Pour compléter la collection, dans un registre tout autre que tu connais
bien... ;-)

Private Declare Function FoldString Lib "kernel32" Alias "FoldStringA" _
(ByVal dwMapFlags As Byte, ByVal lpSrcStr As String, ByVal cchSrc As
Long, _
ByVal lpDestStr As String, ByVal cchdest As Long) As Long

Function SANSACCENTS(Texte As String) As String

Dim strTemp As String, C As String * 1
Dim cchdest As Long, I As Long
cchdest = FoldString(&H40, Texte, -1, strTemp, 0) - 1
strTemp = Space(cchdest)
FoldString &H40, Texte, -1, strTemp, cchdest
For I = 1 To cchdest
C = Mid(strTemp, I, 1)
If C Like "[!´`^¨~°¸]" Then SANSACCENTS = SANSACCENTS & C
Next I

End Function

Laurent


Bounjour Robert;
Ton intéressante fonction est simplifiable:

Function Sans_accents$(Chaine$) ' R. Dezan
' remplacement des caractères accentués
a$ = "ÀÁÂÃÄÅÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝàáâãäåèéêëìíîïðñòóôõöùúûüýÿ"
b$ = "AAAAAAEEEEIIIINOOOOOUUUUYaaaaaaeeeeiiiionooooouuuuyy"
For i% = 1 To Len(Chaine)
u% = InStr(1, a, Mid(Chaine, i, 1), 0)
If u Then Mid(Chaine, i, 1) = Mid(b, u, 1)
Next i
Sans_accents = Chaine
End Function

Sub Test()
MsgBox
Sans_accents("ÀÁÂÃÄÅÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝàáâãäåèéêëìíîïðñòóôõöùúûüýÿ")
MsgBox Sans_accents("0ZnÁrÄPË43ÑertÔÙdwxÛâçérðpõûÿ")
End Sub

MP

"Herdet" a écrit dans le message de
news:O$

Oups, une petite erreur qui oubliait les caractères non accentués et les
chiffres

Function Sans_accents(Chaine$) ' R. Dezan
' remplacement des caractères accentués
a = "SZszYÀÁÂÃÄÅÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝàáâãäåèéêëìíîïðñòóôõöùúûüýÿ"
b = "SZszYAAAAAAEEEEIIIINOOOOOUUUUYaaaaaaeeeeiiiionooooouuuuyy"
Src = Chaine$
Dest = ""
For i = 1 To Len(Src)
car = Mid(Src, i, 1)
If InStr(1, a, car, 0) <> 0 Then
For j = 1 To Len(a)
If Mid(a, j, 1) = car Then Dest = Dest &
Mid(b, j,
1): Exit For
Next
Else
Dest = Dest & car
End If
Next
Sans_accents = Dest
'---- Testé sur 0ZnÁrÄPË43ÑertÔÙdwxÛâçérðpõûÿ
End Function

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


Bonjour Michel,
Une solution VBA un peu plus générale sans Select Case ni codes ASCII
A adapter
Cordialement
Robert Dezan
-------------------------------------------------------
Function Sans_accents(Chaine$) ' R. Dezan
' remplacement des caractères accentués
a = "SZszYÀÁÂÃÄÅÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝàáâãäåèéêëìíîïðñòóôõöùúûüýÿ"
b = "SZszYAAAAAAEEEEIIIINOOOOOUUUUYaaaaaaeeeeiiiionooooouuuuyy"
Src = Chaine$
Dest = ""
For i = 1 To Len(Src)
Car = Mid(Src, i, 1)
If InStr(1, a, Car, 0) <> 0 Then
For j = 1 To Len(a)
If Mid(a, j, 1) = Car Then Dest = Dest & Mid(b,




j,

1): Exit For
Next
End If
Next
Sans_accents = Dest
End Function
------------------------------------------------------------------------

"Michel NOLF" a écrit dans le message




de

news: %

Bonjour à tous
Je voudrais pouvoir supprimer les accents d'une chaine de caractères.





Il

y
a-t-il un moyen sans être obligé de passer par un select case é,ù,î,ï
etc.
Les caractères peuvent être en LCase ou UCase.
Merci pour votre aide
Michel
















Avatar
Starwing
Bonjour Misange,

Il va falloir renouveler les pages d'Excelabo, en si peu de, nous avons
reçu tellement de nouvelles procédures interessantes...

Une suggestion, dans la mesure du possible bien sûr, il faudrait peut-être
créer aussi un fichier zip contenant toutes les procédures d'excelabo en
PDF, pour un téléchargement rapide de tout son contenu. Il me semble que ça
ferait une belle Bible sur ma table de chevet!
--
Au plaisir de vous revoir ...
Visitez >> http://www.excelabo.net
Le merveilleux site de Misange
Starwing

--
Avatar
el argentino
il est probable que le manque de lumière soit dû au fait qu'on ait pu
malencontreusement éteindre la seule lampe de la caverne...
il est tout aussi probable que, profitant de cette obscurité, quelques st
valentin aient pu tendrement s'étreindre...
par contre, il est plus qu'incertain que chacun ait pu s'impreindre de la
versatilité de l'individu, fût il un broutard angevin...

pffffff....les écrits (des limousines) restent, ces traîtres!!!!


"AV" a écrit dans le message de
news:uWS4c5$
être l'oeuvre d'un esprit tourmenté par le manque de lumière dû à un
séjour


cavernicole prolongé.


Je ne répondrais que par cette petite piqure de rappel ** afin que chacun
s'impreigne profondément de la versatilité de l'individu !
**

http://groups.google.com/groups?hl=fr&lr=&c2coff=1&frame=right&thA05c3a8ea3f03

73&seekm£u9ag%24gg%241%40wanadoo.fr#link10

Pfff... les écrits restent !
AV





1 2 3 4 5