formule de suppréssion d'accents

  • Initiateur de la discussion Jouxte
  • Date de début
J

Jouxte

Guest
je dois faire un annuaire interne.
le fichier se compose en :
colonne A du prénom
colonne B du nom
Je souhaite calculer en automatique l'adresse Email en faisant en colonne C = Colonne A & colonne B & '@fournisseur.net'
Si les prénoms ou noms comportent des accents mon adresse Email ne fonctionne pas.
Y a t il une fonction qui me permette de supprimer ces accents ?
Merci à vous de bien vouloir me répondre. et bravo pour ce forum où l'on trouve un tas de choses intéressantes.
 

Herdet

Nous a quitté
Repose en paix
Re : Re:formule de suppression d'accents

Bonsoir,
... et pour faire plus court avec une fonction API qui fonctionne bien en Excel 2010...

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

Function SANSACCENTS(Texte As String) As String
    Dim I As Integer
    SANSACCENTS = Space(Len(Texte))
    For I = 0 To Len(Texte) * 2 - 2 Step 2
     FoldString &H40, StrPtr(Texte) + I, 1, StrPtr(SANSACCENTS) + I, 1
    Next I
 End Function

appels :
=SANSACCENTS(B5)
=SANSACCENTS("éàèùôê")

Je ne savais que j'avais participé à cette discussion sûrement un peu ancienne.
Ce lien n'existe plus
 

Herdet

Nous a quitté
Repose en paix
Re : Re:formule de suppression d'accents

Bonjour tout le monde,

Pour les flemmards, voila la formule :
=SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(A:A;"é";"e");"è";"e");"ê";"e");"ë";"e");"ô";"o");"ö";"o");"ï";"i");"î";"i");"ç";"c");"ù";"u");"û";"u");"ü";"u")
Et elle marche tres bien !
Gmollet
PS jeu : trouver où il manque un accent dans mon message.
...une de plus : voilà, très et ... );"ç";"c")... appelé aussi "accent inférieur" :confused:

A noter que la fonction API précédente SANSACCENTS() fonctionne aussi pour les caractères spéciaux, retour à la ligne,...
 

asnet74

XLDnaute Nouveau
Re : formule de suppréssion d'accents

Cette fonction me parait absolument parfaite...
…mais elle ne fonctionne pas semble-t-il avec le dernier Excel 2010 !??
#NOM? s'affiche si je l'utilise.
L'auteur ou quelqu'un d'autre peut-il se pencher sur le cas ?
ça serait terrible !

merci d'avance

Bonjour à tous,

Il y a encore plus flemmard :p en passant par cette fonction :
Code:
Function SANSACCENT(texte)
    avec = "ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÌÍÎÏìíîïÙÚÛÜùúûüÿÑñÇç_"
    sans = "AAAAAAaaaaaaOOOOOOooooooEEEEeeeeIIIIiiiiUUUUuuuuyNnCc "
    tmp = texte
    For i = 1 To Len(tmp)
        pot = InStr(avec, Mid(tmp, i, 1))
        If pot > 0 Then Mid(tmp, i, 1) = Mid(sans, pot, 1)
    Next i
    If tmp = 0 Then tmp = ""
    SANSACCENT = tmp
End Function

A copier dans un module. Il faudra par la suite la traiter comme une fonction classique, de type :


A+

EDIT : Bonjour et bien vu pour le "refresh" de 7 ans, Modeste GeeDee... :p
 

Herdet

Nous a quitté
Repose en paix
Re : formule de suppréssion d'accents

Bonjour,
La fonction en API de mon message #17 fonctionne parfaitement dans tous les Excel et en plus comme elle utilise la table de caractères, on a pas besoin d'énumérer tous les caractères accentués de la langue française ... sans en oublier.;)
Difficile de faire plus simple mais c'est vous qui voyez !
A+
Robert

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

Function SANSACCENTS(Texte As String) As String
    Dim I As Integer
    SANSACCENTS = Space(Len(Texte))
    For I = 0 To Len(Texte) * 2 - 2 Step 2
     FoldString &H40, StrPtr(Texte) + I, 1, StrPtr(SANSACCENTS) + I, 1
    Next I
 End Function
 

adhyatma

XLDnaute Nouveau
Re : Re:formule de suppression d'accents


...une de plus : voilà, très et ... );"ç";"c")... appelé aussi "accent inférieur" :confused:

A noter que la fonction API précédente SANSACCENTS() fonctionne aussi pour les caractères spéciaux, retour à la ligne,...
Bonjour,
Je relance cette discussion, la fonction API fonctionne parfaitement, cependant elle ne me supprime pas les caractères spéciaux tels que " ' \ qui sont plus qu'indésirables dans une adresse mail. Serait-il possible d'avoir quelques informations sur le fonctionnement de cette API et/ou une mise à jour pour supprimer tous les caractères qui n'ont rien à faire dans une adresse mail ?
Merci d'avance
Stéphane
 

petitou

XLDnaute Nouveau
je dois faire un annuaire interne.
le fichier se compose en :
colonne A du prénom
colonne B du nom
Je souhaite calculer en automatique l'adresse Email en faisant en colonne C = Colonne A & colonne B & '@fournisseur.net'
Si les prénoms ou noms comportent des accents mon adresse Email ne fonctionne pas.
Y a t il une fonction qui me permette de supprimer ces accents ?
Merci à vous de bien vouloir me répondre. et bravo pour ce forum où l'on trouve un tas de choses intéressantes.

Je réponds à ce vieux post mais ça servira peut-être à quelque flemmards comme moi. (Noter que ça supprime également les espaces, les "_" et les "-" )

=SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(A:A;"À";"A");"Á";"A");"Â";"A");"Ã";"A");"Ä";"A");"Å";"A");"à";"a");"á";"a");"â";"a");"ã";"a");"ä";"a");"å";"a");"Ò";"O");"Ó";"O");"Ô";"O");"Õ";"O");"Ö";"O");"Ø";"O");"ò";"o");"ó";"o");"ô";"o");"õ";"o");"ö";"o");"ø";"o");"È";"E");"É";"E");"Ê";"E");"Ë";"E");"è";"e");"é";"e");"ê";"e");"ë";"e");"Ì";"I");"Í";"I");"Î";"I");"Ï";"I");"ì";"i");"í";"i");"î";"i");"ï";"i");"Ù";"U");"Ú";"U");"Û";"Ü");"ù";"u");"ú";"u");"ü";"u");"ÿ";"y");"Ñ";"N");"ñ";"n");"Ç";"C");"ç";"c");"_";"");"-";"");" "; "")
 

ralph45

XLDnaute Impliqué
Bonjour le forum, le fil, @adhyatma & @petitou,

Intégration des "underscores" et des "côtes" dans la fonction SANSACCENT()...

NB : ce serait bien d'inclure cette fonction dans les titres des posts du forum, car "suppression" ne comporte pas d'accent ! 😄😗😅

VB:
Function SANSACCENT(texte)
    'Définition des variables
    avec = "ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÌÍÎÏìíîïÙÚÛÜùúûüÿÑñÇç_'"
    sans = "AAAAAAaaaaaaOOOOOOooooooEEEEeeeeIIIIiiiiUUUUuuuuyNnCc "
    tmp = texte

    'Boucle de traitement
    For i = 1 To Len(tmp)
        pot = InStr(avec, Mid(tmp, i, 1))
        If pot > 0 Then Mid(tmp, i, 1) = Mid(sans, pot, 1)
    Next i
    If tmp = 0 Then tmp = ""  'Ne laisse pas un zéro si champ vide
    SANSACCENT = tmp          'Retour du traitement
End Function
Function Nombre(ByVal CurrString As String)
Dim temp As String

temp = Left(CurrString, 1)
Do While Not IsNumeric(temp)
If Len(CurrString) <= 1 Then
Exit Function
Else
CurrString = Mid(CurrString, 2)
temp = Left(CurrString, 1)
End If
Loop
Nombre = Val(CurrString)
End Function
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 105
Messages
2 085 350
Membres
102 870
dernier inscrit
Armisa