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

Problème avec les accents dans RECHERCHEV

8 réponses
Avatar
Jean-Paul V
Bonjour à tous

Je dois travailler sur un fichier du Service du Personnel qui ne respecte ni
les accents ni les traits d’union.
Ma fonction est :
=SI(ESTNA(RECHERCHEV(+G1&+GAUCHE(N1;4);TOUT;7;FAUX));"";RECHERCHEV(+G1&+GAUCHE(N1;4);TOUT;7;FAUX))

en G1 j’ai le Nom
en N1 J’ai le Prénom

je cherche la section comptable dans la BD ‘’TOUT’’ en colonne 4

si j’ai en G1 ‘’MARTIN’’ et en N1 ‘’Valérie’’

existe-t-il une autre fonction qui trouverait le résultat sachant que dans
le fichier du Service du Personnel j’ai :
MARTIN VALERIE sans accent

Comment faire pour que la fonction ne tienne pas compte des accents ?


@+ j’espère

8 réponses

Avatar
AV
Dans un module ordinaire :

Function Virer_Accents$(chaine$)
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

Dans tes calculs remplacer N1 par Virer_Accents(N1)

AV
Avatar
JB
Bonjour,


=SI(ESTNA(RECHERCHEV(+G1&+GAUCHE(sansAccent(N1);4);TOUT;7;FAUX));"";RECHE RCHEV(+G1&+GAUCHE(sansAccent(N1);4);TOUT;7;FAUX))

Dans un module: Alt+F11 puis Insertion/Module:

Function sansAccent(chaine)
codeA = "éèêëàçùôûïî"
codeB = "eeeeacuouii"
temp = chaine
For i = 1 To Len(temp)
p = InStr(codeA, Mid(temp, i, 1))
If p > 0 Then Mid(temp, i, 1) = Mid(codeB, p, 1)
Next
sansAccent = temp
End Function

Cordialement JB



Bonjour à tous

Je dois travailler sur un fichier du Service du Personnel qui ne respecte ni
les accents ni les traits d'union.
Ma fonction est :
=SI(ESTNA(RECHERCHEV(+G1&+GAUCHE(N1;4);TOUT;7;FAUX));"";RECHERCHEV(+G1& +GAUCHE(N1;4);TOUT;7;FAUX))

en G1 j'ai le Nom
en N1 J'ai le Prénom

je cherche la section comptable dans la BD ''TOUT'' en colonne 4

si j'ai en G1 ''MARTIN'' et en N1 ''Valérie''

existe-t-il une autre fonction qui trouverait le résultat sachant que dans
le fichier du Service du Personnel j'ai :
MARTIN VALERIE sans accent

Comment faire pour que la fonction ne tienne pas compte des accents ?


@+ j'espère


Avatar
Jean-Paul V
Bonjour AV (César)
Je suis toujours stupéfait de voir à quelle vitesse on a des réponses sur ce
site,c'est extraordinaire !

J'ai essayé sur un petit fichier cela ne semble pas marcher voir dans ci-joint

http://cjoint.com/?kbkFdxuvZM

celle de JB marche mais si on me fait le coup de mettre des majuscules avec
accent je crois que je serais encore marron.

@+ merci encore





Dans un module ordinaire :

Function Virer_Accents$(chaine$)
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

Dans tes calculs remplacer N1 par Virer_Accents(N1)

AV





Avatar
Jean-Paul V
Bonjour JB et merci pour cette réponse si rapide

ça marche ,mais comme je m'attends à ce que l'on me fasse le coup de
majuscules avec accents, j'ai essayé de modifier votre fonction mais cela ne
marche pas:
But prévoir si on me met VALÉRIE
voir petit fichier ci-joint http://cjoint.com/?kbkFdxuvZM
j'ai essayé :
Function sansAccentJBJPV(chaine)
' Fonction JB modifiéJPV
codeA = "éèêëàçùôûïîÉÈÊËÀÇÙÔÛÏÎ"
codeB = "eeeeacuouiiEEEEACUOUII"
temp = chaine
For i = 1 To Len(temp)
p = InStr(codeA, Mid(temp, i, 1))
If p > 0 Then Mid(temp, i, 1) = Mid(codeB, p, 1)
Next
sansAccentJBJPV = temp
End Function
ça marche pas

@+ et merci encore




Bonjour,


=SI(ESTNA(RECHERCHEV(+G1&+GAUCHE(sansAccent(N1);4);TOUT;7;FAUX));"";RECHERCHEV(+G1&+GAUCHE(sansAccent(N1);4);TOUT;7;FAUX))

Dans un module: Alt+F11 puis Insertion/Module:

Function sansAccent(chaine)
codeA = "éèêëàçùôûïî"
codeB = "eeeeacuouii"
temp = chaine
For i = 1 To Len(temp)
p = InStr(codeA, Mid(temp, i, 1))
If p > 0 Then Mid(temp, i, 1) = Mid(codeB, p, 1)
Next
sansAccent = temp
End Function

Cordialement JB



Bonjour à tous

Je dois travailler sur un fichier du Service du Personnel qui ne respecte ni
les accents ni les traits d'union.
Ma fonction est :
=SI(ESTNA(RECHERCHEV(+G1&+GAUCHE(N1;4);TOUT;7;FAUX));"";RECHERCHEV(+G1&+GAUCHE(N1;4);TOUT;7;FAUX))

en G1 j'ai le Nom
en N1 J'ai le Prénom

je cherche la section comptable dans la BD ''TOUT'' en colonne 4

si j'ai en G1 ''MARTIN'' et en N1 ''Valérie''

existe-t-il une autre fonction qui trouverait le résultat sachant que dans
le fichier du Service du Personnel j'ai :
MARTIN VALERIE sans accent

Comment faire pour que la fonction ne tienne pas compte des accents ?


@+ j'espère






Avatar
AV
J'ai essayé sur un petit fichier cela ne semble pas marcher voir dans ci-joint


Tu t'es planté dans la recopie du code ET dans l'utilisation de la fonction
GAUCHE !

http://cjoint.com/?kblwoOGQua

AV

Avatar
Jean-Paul V
Merci cela répond à tous mes besoins


J'ai essayé sur un petit fichier cela ne semble pas marcher voir dans ci-joint


Tu t'es planté dans la recopie du code ET dans l'utilisation de la fonction
GAUCHE !

http://cjoint.com/?kblwoOGQua

AV






Avatar
Jean-Paul V
Re bonjour

ma fonction Gauche sur le prénom avait pour but de résoudre le problème de
l'absence du - dans le fichier DRH exemple Jean Paul au lieu de Jean-Paul
,mais si Dupond Jean épouse Jeannette mon gauche 4 sur le prénom ne résoud
pas le PB.
est-ce que l'on peut en plus d'enlever les accents enlever le -.
Je ne suis pas assez bon pour modifier votre fonction.
merci encore pour votre aide

Bonne Journée


J'ai essayé sur un petit fichier cela ne semble pas marcher voir dans ci-joint


Tu t'es planté dans la recopie du code ET dans l'utilisation de la fonction
GAUCHE !

http://cjoint.com/?kblwoOGQua

AV






Avatar
AV
est-ce que l'on peut en plus d'enlever les accents enlever le -.


Utiliser la fonction SUBSTITUE :

=SUBSTITUE(Virer_Accents(A1);"-";"")

AV