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

Comment supprimer les accents ?

4 réponses
Avatar
Gouap
Bonjour,

Je cherche à remplacer toutes les lettres qui sont accentuées dans les
cellules de ma feuille courante par la même lettre non accentuée.

Avez vous une idée pour faire ça simplement ?

@+
philippe

4 réponses

Avatar
isabelle
bonjour philippe,

Sub Macro1()
Accent = Array("à", "â", "ç", "è", "é", "ê", "ë", "î", "ï", "ô", "ù",
"û", "À", "Â", "Ç", "È", "É", "Ê", "Ë", "Î", "Ï", "Ô", "Ù", "Û")
SansAccent = Array("a", "a", "c", "e", "e", "e", "e", "i", "i", "o",
"u", "u", "A", "A", "C", "E", "E", "E", "E", "I", "I", "O", "U", "U")
For i = LBound(Accent) To UBound(Accent)
Cells.Replace What:¬cent(i), Replacement:=SansAccent(i),
LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:úlse, SearchFormat:úlse,
ReplaceFormat:úlse
Next
End Sub

isabelle

Gouap a écrit :
Bonjour,

Je cherche à remplacer toutes les lettres qui sont accentuées dans les
cellules de ma feuille courante par la même lettre non accentuée.

Avez vous une idée pour faire ça simplement ?

@+
philippe





Avatar
FS
Bonjour,

Je pense qu'il faut passer par une fonction perso en VBA. Parmi de
nombreuses propositions, celle-ci, signée D. Maher, s'utilise aussi bien
dans du code que dans une feuille de calcul :

' Début code ****************(dans un module ordinaire)
Const Avec_Accent$ = _
"ÀÁÂÃÄÅÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝàáâãäåèéêëìíîïðñòóôõöùúûüýÿ"
Const Sans_Accent$ = _
"AAAAAAEEEEIIIINOOOOOUUUUYaaaaaaeeeeiiiinnooooouuuuyy"

Sub test()
MsgBox CSA("là-bas, j'élève l'événement à loisir")
End Sub

' Caractères Sans Accents : CSA
' Daniel M., mpfe
Function CSA(cell1 As String) As String
CSA = MultiSubstitute(cell1, Avec_Accent, Sans_Accent)
End Function

'MultiSubstitute
'In an InputStr, replaces all chars belonging to ToBeReplacedChars
'by the corresponding chars in ByChars
'ToBeReplacedChars and ByChars should be of the same length
'or else it removes the found chars
'Returns the string with the characters replaced (or removed)
'By Daniel M.
Function MultiSubstitute(InputStr As String, _
ToBeReplacedChars As String, ByChars As String) As String

Dim s As String, i As Integer
Dim anOffset As Integer, len_Input As Integer, len_ByChars As Integer

len_Input = Len(InputStr)
len_ByChars = Len(ByChars)
For i = 1 To len_Input
s = Mid(InputStr, i, 1)
anOffset = InStr(ToBeReplacedChars, s)
If anOffset > 0 Then
If anOffset <= len_ByChars Then
MultiSubstitute = MultiSubstitute & _
Mid(ByChars, anOffset, 1)
End If
Else
MultiSubstitute = MultiSubstitute & s
End If
Next
End Function
' Fin du code ****************

FS
--
Frédéric SIGONNEAU
Modules et modèles pour Excel :
http://frederic.sigonneau.free.fr/

Gouap a écrit :
Bonjour,

Je cherche à remplacer toutes les lettres qui sont accentuées dans les
cellules de ma feuille courante par la même lettre non accentuée.

Avez vous une idée pour faire ça simplement ?

@+
philippe




Avatar
JB
Bonjour,

http://boisgontierjacques.free.fr/fichiers/fonctionsperso/Fonction_SansAcce nt.xls

JB

On 18 déc, 17:52, "Gouap" wrote:
Bonjour,

Je cherche à remplacer toutes les lettres qui sont accentuées dans le s
cellules de ma feuille courante par la même lettre non accentuée.

Avez vous une idée pour faire ça simplement ?

@+
philippe


Avatar
Gouap
Merci à Isabelle FS et JB pour vos propositions.
C'est exactement ce que je cherchais.
Je vais intégrer tout ça dans mon classeur.
@+
Philippe

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

Bonjour,

Je cherche à remplacer toutes les lettres qui sont accentuées dans les
cellules de ma feuille courante par la même lettre non accentuée.

Avez vous une idée pour faire ça simplement ?

@+
philippe