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

Créer une Fonction Sans Accent

3 réponses
Avatar
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 !

3 réponses

Avatar
skywalkeuse
Le jeudi 23 Avril 2020 à 16:57 par 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 endroit (ThisWorkbook) alors qu'il fallait juste créer un module.
Avatar
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 à
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
Le 23/04/2020 à 16:57, Skywalkeuse a écrit :
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 !
Avatar
skywalkeuse
Le jeudi 23 Avril 2020 à 17:17 par 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
à
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
Le 23/04/2020 à 16:57, Skywalkeuse a écrit :
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 !
Merci FxM, je vais modifier ça :)