Comment isoler les mails?

serena79

XLDnaute Nouveau
Comment fait on pour isoler les mails dns une feuille Excel?

TIBO a donné cette formule
=SI(ESTNUM(TROUVE("@";A2));STXT(A1;1;TROUVE(".fr"; A1)+2);"") mais ça ne marche pas.

Avez vous des idées svp?

Voici à quoi ressemble ma liste:
mmm_èhngh is manon@hotmail.com lgnhejl
friendly cool guy IN MEXICO CITY.....pedrocsll@hotmail.com......

merci!
 

Tibo

XLDnaute Barbatruc
Re : Comment isoler les mails?

re,

Un retour pour saluer les Vbaïstes, mais aussi pour proposer une autre formule :

Code:
=STXT(A1;TROUVE("µ";SUBSTITUE(A1;",";"µ";5))+2;TROUVE("@";A1)-
TROUVE("µ";SUBSTITUE(A1;",";"µ";5))+NBCAR(GAUCHE(STXT(A1;TROUVE("@";A1);99);
TROUVE(",";STXT(A1;TROUVE("@";A1);99))-4)))

@+
 

suistrop

XLDnaute Impliqué
Re : Comment isoler les mails?

Bonjour au fil,

Ci joint un autre exemple avec les expression regulieres.
C' est prévu pour faire ca et donc plus sur :
En effet si l'adresse rentré n'est pas valide exemple :
toto@t.fr

Par contre je ne connais pas toutes les conformités.
J'utilise cette expression reguliere sur un site internet pour verifier la validité des emails des inscrits.

Code:
Option Explicit
Function recup_mail(chaine As String) As String
Dim Matches, Match
Dim Reg As Object: Set Reg = CreateObject("Vbscript.RegExp")
Reg.Pattern = "[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}"
Set Matches = Reg.Execute(chaine)
For Each Match In Matches
    recup_mail = Trim(Match.Value)
Next Match
End Function
 

Pièces jointes

  • email.xls
    37.5 KB · Affichages: 103
  • email.xls
    37.5 KB · Affichages: 105
  • email.xls
    37.5 KB · Affichages: 106

latib3000

XLDnaute Nouveau
Bonjour,

Après avoir lu attentivement, et essayer plusieurs fois, en vain, en remplaçant les espaces par les guillemets...etc
Je m'en remets à vous, j'essaie d'extraire, à minima l'adresse email de chaque cellule. Je vous ai mis les quatre syntaxes rencontrées dans mon fichier afin de pouvoir trouver une formule qui puisse s'appliquer à toutes les cellules.

51068;1100009185,00;"CARIOLE";"FITELOT1";"fmoto@wanadoo.fr";1,00;;"16 RUE MOUCHETTE";;10600,00;;"France";0,00;
1;1100009185,00;;;"SABALAN@WANADOO.FR";;21/9/1992 00:00:00;"7 RUE DAVID";;75008,00;"PARIS";"France";0,00;"09 74 65 54 42"
1621072;1100009185,00;;;"moa2157149966@caramail.com";;;;;;;;;
1386171;1100009185,00;"Aude";"Minja";"ancore1@yahoo.fr";2,00;;;;33320,00;"EYTES";"France";;
1386103;1100009185,00;;;"nanard.royere@orange.fr";;;;;33300,00;;"France";;

Merci par avance, et veuillez excuser mon ignorance, je ne possède pas de connaissances aussi poussée en excel.
 

latib3000

XLDnaute Nouveau
Bonjour,

Après avoir lu attentivement, et essayer plusieurs fois, en vain, en remplaçant les espaces par les guillemets...etc
Je m'en remets à vous, j'essaie d'extraire, à minima l'adresse email de chaque cellule. Je vous ai mis les quatre syntaxes rencontrées dans mon fichier afin de pouvoir trouver une formule qui puisse s'appliquer à toutes les cellules.

51068;1100009185,00;"CARIOLE";"FITELOT1";"fmoto@wanadoo.fr";1,00;;"16 RUE MOUCHETTE";;10600,00;;"France";0,00;
1;1100009185,00;;;"SABALAN@WANADOO.FR";;21/9/1992 00:00:00;"7 RUE DAVID";;75008,00;"PARIS";"France";0,00;"09 74 65 54 42"
1621072;1100009185,00;;;"moa2157149966@caramail.com";;;;;;;;;
1386171;1100009185,00;"Aude";"Minja";"ancore1@yahoo.fr";2,00;;;;33320,00;"EYTES";"France";;
1386103;1100009185,00;;;"nanard.royere@orange.fr";;;;;33300,00;;"France";;

Merci par avance, et veuillez excuser mon ignorance, je ne possède pas de connaissances aussi poussée en excel.
 

david84

XLDnaute Barbatruc
Bonjour, salut frérot;),
en adaptant la fonction personnalisée du post #36 cela semble fonctionner (je n'ai pas modifié le pattern) :
Code:
Function recup_mail(chaine As String) As String
Dim Reg As Object, Matches As Object
Set Reg = CreateObject("Vbscript.RegExp")
Reg.IgnoreCase = True 'ajouté
Reg.Pattern = "[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}"
Set Matches = Reg.Execute(chaine)
If Reg.test(chaine) = True Then recup_mail = Matches.Item(0).Value 'modifié (pas besoin d'utiliser une boucle)
End Function
A+
 

latib3000

XLDnaute Nouveau
Bonjour,
JCGL, voici le fichier. Je suis preneur de la correction pour la formule afin de comprendre, bien que la solution de Gosselien semble fonctionner pour tout et cela à merveille !! Merci pour cet astuce, j'avais bien tenté de le faire mais avec une largeur fixe, donc forcément ça ne collait pas. Mais de cette manière ça fonctionne parfaitement.
 

Pièces jointes

  • Classeur2.xlsx
    39.1 KB · Affichages: 43

JBOBO

XLDnaute Accro
Bonjour,
Cette formule semble fonctionner : =SIERREUR(MINUSCULE(STXT(SUBSTITUE(A1;";";"--";4);(CHERCHE("--";SUBSTITUE(A1;";";"--";4);1))+3;(CHERCHE(";";SUBSTITUE(A1;";";"--";4);(CHERCHE("--";SUBSTITUE(A1;";";"--";4);1))+1))-(CHERCHE("--";SUBSTITUE(A1;";";"--";4);1))-4));"")
 

Statistiques des forums

Discussions
312 347
Messages
2 087 501
Membres
103 563
dernier inscrit
samyezzehar