Cas d'utilisation :
Vous est il déjà arrivé de pester en ayant reçu une liste d'adresses mails,
au coeur d'un document texte, que vous auriez souhaité isoler,
pour en faire un traitement spécifique.
Vous auriez pu vouloir adresser un message à chacun des
interlocuteurs dont le mail figure dans le document par exemple ?
Pas de souci,
vous pouvez désormais extraire les mails parsemés dans un texte
via un classeur calc, et utiliser une fonction d'extraction dédiée.
Code : Tout sélectionner
sub TesterExtractionDeMail
'Msgbox Fn2_CaractereExiste("qsfd<martin","<")
MsgBox Fn1_ExtraitMail("bonjour<martin.brait@gmail.com>sqdfzaer")
end sub
'Auteur : martinbrait
'Savoir si un caractère existe
'Sortie booléen.
Code : Tout sélectionner
Function Fn2_CaractereExiste(ChaineTest As String,CaractereTest As String)
Dim i As Integer
Fn2_CaractereExiste=False 'initialisation
For i = 1 To Len(CaractereTest)
If Instr(i,ChaineTest,CaractereTest)>0 Then
Fn2_CaractereExiste = True
Exit For
End If
Next
End Function
'Auteur : martinbrait
'Extraire un mail depuis une extraction de texte, copiée en première colonne d'un tableau
'Le mail à retrouver est balisé entre les signes "<" et ">"
'permet d'extraire un mail selon le contenu au format texte, transmis en paramètre.
Code : Tout sélectionner
Function Fn1_ExtraitMail(ChaineDeCaracteres As String) As Variant
'fonctionne dans l'environnement Office, quelle que soit l'application soffice ouverte.
Dim debutmail As Integer, finmail As Integer, longueurmail As Integer
Dim FnIntegree As Object
FnIntegree= CreateUnoService("com.sun.star.sheet.FunctionAccess")
'on masque la balise de début de mail
If Fn2_CaractereExiste(ChaineDeCaracteres,"<")=True Then
debutmail = FnIntegree.CallFunction("SEARCH",array("<",ChaineDeCaracteres,1))
finmail = FnIntegree.CallFunction("SEARCH",array(">",ChaineDeCaracteres,1))
longueurmail = finmail - debutmail
temp = Replace(FnIntegree.CallFunction("MID",array(ChaineDeCaracteres,debutmail,longueurmail)),"<","")
Else
'retourner chaîne vide, si ChaineDeCaracteres n'a pas la balise attestant la présence d'un mail.
temp=""
End If
Fn1_ExtraitMail = temp
End Function


