Récupérer les informations d'un mail

Bonjour,

Dans le cadre de mon activité, je reçois tous les jours des mails sous un certains format.Mon optique est de simplifier mon travail en centralisant les données de ces mails.

Je reçois des message de cette forme et toujours du même expéditeur.

Alerte : blabla

Point de mesure : blabla

Situation : blabla

Seuil : blabla

Liste des alertes au 11/06/2012 06:00

Lien internet vers le descriptif détaillé.

Mon optique est de créer un fichier excel avec en première colonne l'alerte, dans la seconde le point de mesure etc.....

Je ne sais pour l'instant que lire le corps d'un mail avec la fonction.Items.Body

Je ne sais pas comment dire à mon programme de stocker dans une cellule ce qu'il trouvera après le mot "Alerte" et de s’arrêter au prochain saut de ligne.

Merci pour toutes informations qui pourraient m'aider dans ce développement.

Bonne journée

Envoi un fichier au format texte contenant un exemple (assez complet) de ce que tu recois par mail.

Le developpement se fait via Outlook VBA ou Excel ?

damien

Je pense développer par Excel car ce fichier risque d’être ouvert par plusieurs machines.

Les mails sont tout le temps de ce format et toujours du même destinataire.

Les mails sont automatiquement classé dans un dossier et moi je veux pouvoir avec un fichier excel résumé la situation de ce dossier.

J'espère être assez clair dans ma demande ?

Merci d'avance

1'231modele-de-mail.txt (371.00 Octets)
1'355mail.xlsx (9.89 Ko)

Bonjour,

Je suis actuellement dans le même cadre de figure. La solution m’intéresse fortement et j'ai également envie de rajouter une question.

Comment je peux faire pour suite à un mot clé copier une phrase ?

Je remercie l'ensemble des animateurs de ce forum pour leur travail. (Dont je m'inspire beaucoup )

Merci

Bonjour,

Voici mon avancement sur la question:

Je suis pas très doué mais c'est un début de développement.

Bonne journée.

1'560classeur1.zip (12.99 Ko)

Je suis sur un truc chaud pour le taf, je n'aurais pas le temps de regarder avant ce WeekEnd, si qqun a une réponse avant.

..

Sinon Lundi sans faute..

damien

Je te remercie de ton aide et de mon coté je ne lache pas l affaire non plus.

C est en forgeant que l on devient forgeron

Je suis plutot content de mon avancé et j'espere que cela pourra t'aider PtitLouis ou toi Damien

Je reste bloqué sur mon code pour la partie lecture du corps.

Je n'arrive pas récupérer mes infos.

2'083recuperer-mails.zip (14.50 Ko)

salut,

Dev rapide :

Cela va regarder les mails dans outlook (repertoire Boite de Reception)

et si le mail correspond a cetains critères :

Excemple:

If i.SenderEmailAddress = "alerte@alerte.com" And i.Subject = "Declenchement alerte" Then 'Si expediteur = "jesaispas@vat.com"

Si sujet = Declenchement alerte ET Adresses Emetteur = alerte@alerte.com alors on peuple excel.

A modifier si necessaire.

Pour le reste :

Sub LireMessages()

Dim olapp As New Outlook.Application
Dim NS As Object, Dossier As Object
Dim OlExp As Object
Dim i As Object
Dim mybody() As String
Dim fromsender As String

Set NS = olapp.GetNamespace("MAPI")
Set Dossier = NS.Folders("Dossiers personnels").Folders("Boîte de réception")
b = 2
For Each i In Dossier.Items

    If i.SenderEmailAddress = "alerte@alerte.com" And i.Subject = "Declenchement alerte" Then
        sujet = i.Subject
        mybody = Split(i.Body, vbCrLf)
        fromsender = i.SenderEmailAddress
        dejafait = True
        For compt = 0 To UBound(mybody)
            If InStr(1, UCase(mybody(compt)), UCase("ALERTE")) > 0 And dejafait = True Then
                alerte = LTrim(Split(mybody(compt), ":")(1))
                dejafait = False
            End If
            If InStr(1, UCase(mybody(compt)), UCase("Point de mesure")) > 0 Then
                PointMesure = LTrim(Split(mybody(compt), ":")(1))
            End If
            If InStr(1, UCase(mybody(compt)), UCase("Situation")) > 0 Then
                situation = LTrim(Split(mybody(compt), ":")(1))

            End If
            If InStr(1, UCase(mybody(compt)), UCase("Seuil")) > 0 Then
                seuil = LTrim(Split(mybody(compt), ":")(1))
            End If
            If InStr(1, UCase(mybody(compt)), UCase("Liste des alertes")) > 0 Then
                mydate = Mid(mybody(compt), InStr(1, mybody(compt), "/") - 2, 10)

            End If

        Next
        Cells(b, 1) = fromsender
        Cells(b, 2) = sujet
        Cells(b, 3) = Format(mydate, "MM/DD/YYYY")
        Cells(b, 4) = alerte
        Cells(b, 5) = PointMesure
        Cells(b, 6) = seuil
        Cells(b, 7) = situation

     b = b + 1

  End If

Next i
End Sub

Damien

C'est exactement cela que j'essaye de faire. j'ai encore quelques petits beug mais je te remercie.

J'espère pouvoir le finir rapidement pour partager le document cela peut servir.

Ton code marche parfaitement Damien.

Je viens de le mettre en place et j'arrive parfaitement a faire le traitement de mes mails.

En revanche, je ne comprends pas pourquoi le for each i In Dossier.Items ne prend pas tous mes mails.

Je suis obliger de lancer la macro plusieurs fois pour récupérer tous les mails.

Bonne journée.

Rechercher des sujets similaires à "recuperer informations mail"