Comment transformer un é en e en vba Excel ?

Mikado13

XLDnaute Nouveau
Bonjour,

Je suis en train d'écrire une macro Vba Excel qui prend dans un tableau le nom, le prénom d'une personne pour en faire un e-mail.

Sous Windows Pc et Excel 2003,
la macro tourne et crée bien l'e-mail, cependant j'ai un souci, car dans le tableau, des prénoms ont des accents tels que é, è, ë, etc... et ceci ne peut
rester dans une adresse e-mail...

Est-ce quelqu'un pourrait me donner une idée pour remédier à ce problème ?
avec un grand merci d'avance...

Mikado13
 

Brigitte

XLDnaute Barbatruc
Re : Comment transformer un é en e en vba Excel ?

Bonsoir,

Si tu as peu de cas, tu peux utiliser ceci :

=REMPLACER(A1;CHERCHE("ë";A1;1);1;"e")

Exemple pour le "ë" à remplacer par le "e"... dans une colonne supplémentaire... un peu long mais évitant le vba. Je ne vois pas bien comment rajouter les autres, en revanche, dans la même colonne...
 

Mikado13

XLDnaute Nouveau
Re : Comment transformer un é en e en vba Excel ?

Brigitte merci pour ta proposition,

Mais mon souci, c'est que c'est une base du personnel avec un grand nombre de lignes et de colonnes, donc j'essaye de résoudre le plus possible en vba Excel, et de faciliter la saisie des personnes qui auront à remplir la base... d'où justement l'intérêt de créer automatiquement l'e-mail sur le principe de construction des mails de l'entreprise : prenom.nom@entreprise.fr et ceci sans accents ou caracteres spéciaux.
 
C

Compte Supprimé 979

Guest
Re : Comment transformer un é en e en vba Excel ?

Bonjour Mikado13

Il y avait eu un code sur le forum pour ce genre de chose ;)

Je ne l'ai pas retrouvé, donc je l'ai refais :p:D
Code:
Function SansAccent(Chaine As String)
  Dim TabAccent As String, TabSans As String, PosAccent As Long
  Dim I As Long, StrTmp As String
  ' Table des lettres avec accent
  TabAccent = "ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ"
  ' Table des lettres sans accent
  TabSans = "AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy"
  ' Pour chaque lettre de la chaine
  StrTmp = Chaine
  For I = 1 To Len(Chaine)
    ' Trouvé si la lettre est dans celles accentuées
    PosAccent = InStr(1, TabAccent, Mid(StrTmp, I, 1))
    ' Si oui on la traite
    If PosAccent > 0 Then Mid(StrTmp, I, 1) = Mid(TabSans, PosAccent, 1)
  Next I
  SansAccent = StrTmp
End Function

A+
 
Dernière modification par un modérateur:

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Comment transformer un é en e en vba Excel ?

Bonsoir,

http://boisgontierjacques.free.fr/fichiers/fonctionsperso/Fonction_SansAccent.xls

Code:
Function sansAccent(chaine)
   codeA = "ÉÈÊËÔéèêëàçùôûïî"
   codeB = "EEEEOeeeeacuouii"
   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

=sansaccent(SUBSTITUE(A2;" ";"-")&"."&SUBSTITUE(B2;" ";"-") &"@edf.fr")

=LIEN_HYPERTEXTE("mailto:"&sansaccent(SUBSTITUE(A2;" ";"-")&"."&SUBSTITUE(B2;" ";"-") &
"@edf.fr");sansaccent(SUBSTITUE(A2;" ";"-")&"."&SUBSTITUE(B2;" ";"-") &"@edf.fr"))

JB
 

Pièces jointes

  • email2.xls
    24.5 KB · Affichages: 255
Dernière édition:

Cousinhub

XLDnaute Barbatruc
Re : Comment transformer un é en e en vba Excel ?

Bonsoir,

Tiens, un petit code trouvé (de Laurent Longre, je crois...... :confused:)

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
 

Mikado13

XLDnaute Nouveau
Re : Comment transformer un é en e en vba Excel ?

Merci BrunoM45,
pour ce bout de code... écrit si rapidement,
je suis encore novice à côté ... merci

Dis voir, j'ai pris le code, l'ai collé dans un module Vba tout neuf,
et ai essayé de lancer la macro, mais sans succès, elle ne s'affiche même pas
dans le menu des macros...
Il y a-t-il quelque chose que j'ai mal fait...?

Mikado13
 

Mikado13

XLDnaute Nouveau
Re : Comment transformer un é en e en vba Excel ?

Merci aux uns et aux autres ... BhBh et Boisgonthier
qui ont aussi répondu entre temps,
La fonction de Boisgonthier est bonne...

C'est super, car je suis sur ce problème depuis un bout de temps, c'est super
sympa l'entraide quand même...

Bien amicalement - Mikado13
 
C

Compte Supprimé 979

Guest
Re : Comment transformer un é en e en vba Excel ?

Salut Bh² ;)

Super géniale cette fonction récursive avec API windows
king.gif


Il est trop fort ce Laurent Longre, je ne serais pas étonné que ce soit de lui
marcelpoire.gif


A+
 

Discussions similaires

Statistiques des forums

Discussions
312 432
Messages
2 088 373
Membres
103 835
dernier inscrit
Jaco24