Discussion:
Créer une Fonction Sans Accent
(trop ancien pour répondre)
Skywalkeuse
2020-04-23 14:57:34 UTC
Permalink
Bonjour à tous,
Je souhaite faire une RechercheV sur une liste de nom propre sauf que cela n
fonctionne pas sur certain à cause des accents.
J'ai trouvé un tuto pour créer une fonction afin de pouvoir supprimer rapidemen
les accents de chaque nom propre de la liste mais la fonction n'est pas reconnu
Je l'ai bien enregistré dans ThisWorkbook et passé mon fichier Excel en .xlsm

Avez-vous une idée de ce qui bloque ?
______________________________
Function sansAccent(chaine As String) As String
Dim ch_avec As String: Dim ch_sans As String
Dim tampon As String: Dim i As Byte: Dim position As String

ch_avec = "e;e;ÉÈÊËÔéèêëàçùôûïî"e;e;
ch_sans = "e;e;EEEEOeeeeacuouii"e;e;
tampon = chaine

For i = 1 To Len(tampon)
position = InStr(ch_avec, Mid(tampon, i, 1))
If position > 0 Then Mid(tampon, i, 1) = Mid(ch_sans, position, 1)
Next i

sansAccent = tampon
End Function
______________________________

Merci beaucoup d'avance !
skywalkeuse
2020-04-23 15:03:58 UTC
Permalink
Post by Skywalkeuse
Bonjour à tous,
Je souhaite faire une RechercheV sur une liste de nom propre sauf que cela ne
fonctionne pas sur certain à cause des accents.
J'ai trouvé un tuto pour créer une fonction afin de pouvoir
supprimer rapidement les accents de chaque nom propre de la liste mais la
fonction n'est pas reconnu. Je l'ai bien enregistré dans ThisWorkbook et
passé mon fichier Excel en .xlsm
Avez-vous une idée de ce qui bloque ?
______________________________
Function sansAccent(chaine As String) As String
Dim ch_avec As String: Dim ch_sans As String
Dim tampon As String: Dim i As Byte: Dim position As String
ch_avec =
"e;e;ÉÈÊËÔéèêëàçùôûïî"e;e;
ch_sans = "e;e;EEEEOeeeeacuouii"e;e;
tampon = chaine
For i = 1 To Len(tampon)
position = InStr(ch_avec, Mid(tampon, i, 1))
If position > 0 Then Mid(tampon, i, 1) = Mid(ch_sans, position, 1)
Next i
sansAccent = tampon
End Function
______________________________
Merci beaucoup d'avance !
Ok je viens de comprendre ma bêtise, j'ai mis la fonction au mauvais endroi
(ThisWorkbook) alors qu'il fallait juste créer un module.
FxM
2020-04-23 15:17:02 UTC
Permalink
Hello Skywalkeuse,

A priori, il manquerai un premier argument dans ta fonction instr(...).
Ce premier argument est le numéro du caractère à partir duquel chercher.

Comme tu cherches sur l'ensemble de ta chaîne, c'est une recherche à
partir du 1er caractère. Donc :

position = InStr(ch_avec, Mid(tampon, i, 1))
deviendrait
position = InStr(1, ch_avec, Mid(tampon, i, 1))

@+
FxM
Post by Skywalkeuse
Bonjour à tous,
Je souhaite faire une RechercheV sur une liste de nom propre sauf que cela ne
fonctionne pas sur certain à cause des accents.
J'ai trouvé un tuto pour créer une fonction afin de pouvoir supprimer rapidement
les accents de chaque nom propre de la liste mais la fonction n'est pas reconnu.
Je l'ai bien enregistré dans ThisWorkbook et passé mon fichier Excel en .xlsm
Avez-vous une idée de ce qui bloque ?
______________________________
Function sansAccent(chaine As String) As String
Dim ch_avec As String: Dim ch_sans As String
Dim tampon As String: Dim i As Byte: Dim position As String
ch_avec = "e;e;ÉÈÊËÔéèêëàçùôûïî"e;e;
ch_sans = "e;e;EEEEOeeeeacuouii"e;e;
tampon = chaine
For i = 1 To Len(tampon)
position = InStr(ch_avec, Mid(tampon, i, 1))
If position > 0 Then Mid(tampon, i, 1) = Mid(ch_sans, position, 1)
Next i
sansAccent = tampon
End Function
______________________________
Merci beaucoup d'avance !
skywalkeuse
2020-04-24 08:56:16 UTC
Permalink
Post by FxM
Hello Skywalkeuse,
A priori, il manquerai un premier argument dans ta fonction instr(...).
Ce premier argument est le numéro du caractère à partir
duquel chercher.
Comme tu cherches sur l'ensemble de ta chaîne, c'est une recherche à
position = InStr(ch_avec, Mid(tampon, i, 1))
deviendrait
position = InStr(1, ch_avec, Mid(tampon, i, 1))
@+
FxM
Post by Skywalkeuse
Bonjour à tous,
Je souhaite faire une RechercheV sur une liste de nom propre sauf que cel
ne
Post by FxM
Post by Skywalkeuse
fonctionne pas sur certain à cause des accents.
J'ai trouvé un tuto pour créer une fonction afin de pouvoir
supprimer rapidement
les accents de chaque nom propre de la liste mais la fonction n'est pas reconnu.
Je l'ai bien enregistré dans ThisWorkbook et passé mon fichier Excel en .xlsm
Avez-vous une idée de ce qui bloque ?
______________________________
Function sansAccent(chaine As String) As String
Dim ch_avec As String: Dim ch_sans As String
Dim tampon As String: Dim i As Byte: Dim position As String
ch_avec =
"e;e;ÉÈÊËÔéèêëàçùôûïî"e;e;
ch_sans = "e;e;EEEEOeeeeacuouii"e;e;
tampon = chaine
For i = 1 To Len(tampon)
position = InStr(ch_avec, Mid(tampon, i, 1))
If position > 0 Then Mid(tampon, i, 1) = Mid(ch_sans, position, 1)
Next i
sansAccent = tampon
End Function
______________________________
Merci beaucoup d'avance !
Merci FxM, je vais modifier ça :)

Loading...