IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Extraire données mails Outlook vers Excel


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2015
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Juillet 2015
    Messages : 44
    Par défaut Extraire données mails Outlook vers Excel
    J'ai lu cette discussion.

    Je relance ce projet qui me semble assez similaire à ce que je voudrais :-)

    J'ai un fichier excel : suivi.xls par exemple qui me permet de suivre les activités de mes collègues.

    Mes collègues m'envois des mails avec en objet qqch du genre : "#suivi/123456789 - votre APPAREIL"

    Je voudrais executer ma macro sur le fichier excel et qu'elle puisse "scanner" l'intégralité des mails dans le dossier SUIVI dans ma boite de réception.
    Pour chaque mail il remplira une ligne du fichier excel : en B2 par exemple le numéro de dossier présent dans l'objet, en B3 l'appareil présent dans l'objet, en B4 la date du mail et en B5 le nom de la personne qui a envoyé le mail.
    Bien entendu chaque mail sera sur une ligne suivante (mail 2 en ligne C, mail 3 en ligne D etc etc
    Une fois le dossier SUIVI entièrement scanné, le fichier sera enregistré à son emplacement actuel et la dossier SUIVI sera vidé (pour éviter les doublons)

    Lorsque je relancerais cette macro (le lendemain) il fera la meme chose en allant sur la premiere ligne vide (si la dernière ligne occupée était la Q par exemple il commencera en R).

    Si vous pouviez m'aider à ca ca sera niquel :-)

    Autre chose sans vouloir être chiant : vous pouvez commenter les lignes pour que je puisse décrypter un peu comment vous avez procédé pour ma formation personnelle ? :-p

    Merci a vous tous et j'espère avoir une réponse rapidement :-D

  2. #2
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, voir les FAQs 1 2

  3. #3
    Membre actif
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2015
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Juillet 2015
    Messages : 44
    Par défaut
    Bon a force de chercher j'ai trouvé :-)

    les mails dans mon dossier TEST aura donc un sujet de la forme : "#quote/111111119 : votre laveur US" par exemple.
    Voici la macro que j'ai pondu et qui fonctionne à la PERFECTION !!!!


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    Sub LireMessagesDUnDossierEtLeDeplacerVersUnAutre()
        Dim olApp As Object, NS As Object, Dossier As Object
        Dim i As Object, x As Long, R As Object, Ligne As Long
        Dim notif As String
        Dim appareil As String
        Set olApp = CreateObject("Outlook.Application")
        Set NS = olApp.GetNamespace("MAPI")
        Set DossierSource = NS.Folders(1).Folders("Boîte de réception").Folders("TEST")
        With Sheets("Feuil1")
            Ligne = .Cells(.Rows.Count, 3).End(xlUp).Row
            For Each i In DossierSource.Items
                Ligne = Ligne + 1
                .Cells(Ligne, 1) = i.SenderName
                notif = Left(i.Subject, 16)
                notif = Right(notif, 9)
                    .Cells(Ligne, 2) = notif
                appareil = Right(i.Subject, Len(i.Subject) - 25)
                    .Cells(Ligne, 3) = appareil
                    .Cells(Ligne, 4) = i.CreationTime
                i.Delete
            Next i
        End With
        Set NS = Nothing
        Set olApp = Nothing
     
        ActiveWorkbook.Save
     
    End Sub

    MAINTENANT je voudrais faire une variante cad préremplir le fichier avec le numéro de dossier (variable notif) et que du coup ma macro recherche la ligne où se trouve le numéro de dossier et complète les autres colonnes (dans la meme ligne bien sur) avec le nom de l'expéditeur, l'appareil et la date du mail.

    J'ai donc fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    Sub LireMessagesDUnDossierEtLeDeplacerVersUnAutre()
        Dim olApp As Object, NS As Object, Dossier As Object
        Dim i As Object, x As Long, R As Object, Ligne As Long
        Dim notif As String, appareil As String
     
        Dim Trouve As Range, PlageDeRecherche As Range
        Dim Valeur_Cherchee As String, AdresseTrouvee As String
     
     
        Set olApp = CreateObject("Outlook.Application")
        Set NS = olApp.GetNamespace("MAPI")
        Set DossierSource = NS.Folders(1).Folders("Boîte de réception").Folders("TEST")
            For Each i In DossierSource.Items                   'pour chaque mail dans le dossier source
                notif = Left(i.Subject, 16)
                notif = Right(notif, 9)
     
                Set PlageDeRecherche = ActiveSheet.Columns(2)
                Set Trouve = PlageDeRecherche.Cells.Find(what:=notif, LookAt:=xlWhole)
     
                ActiveSheet.Cells(Trouve.Row, 1) = i.SenderName
                appareil = Right(i.Subject, Len(i.Subject) - 25)
                ActiveSheet.Cells(Trouve.Row, 3) = appareil
                ActiveSheet.Cells(Trouve.Row, 4) = i.CreationTime
            Next i
        Set NS = Nothing
        Set olApp = Nothing
        Set PlageDeRecherche = Nothing
        Set Trouve = Nothing
     
    End Sub
    Et là j'ai une erreur que je n'arrive pas à m'expliquer :
    Erreur d'éxécution '91' : variable objet ou variable de bloc with non définie

    l'erreur appareil sur la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveSheet.Cells(Trouve.Row, 1) = i.SenderName
    Quelqu'un a une idée de la raison pour laquelle il me ponds cette erreur ?

    Merci d'avance pour votre aide !!! :-)

  4. #4
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    l'erreur me semble la plus courante : ton Find n'a rien trouvé donc ta variable Trouve n'existe pas... et donc sa propriété Row non plus
    Comme c'est une variable Objet, on dit qu'elle vaut "Rien" car elle n'a pas pu être définie

    il suffit de tester Trouve pour voir si ça vient de là :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    With ActiveSheet
        Set Trouve = .Columns(2).Cells.Find(what:=notif, LookAt:=xlWhole)
        If Not Trouve Is Nothing Then
            .Cells(Trouve.Row, 1) = i.SenderName
            .Cells(Trouve.Row, 3) = Right(i.Subject, Len(i.Subject) - 25)
            .Cells(Trouve.Row, 4) = i.CreationTime
        Else
            MsgBox "Valeur non trouvée : " & notif
        End If
    End With

  5. #5
    Membre actif
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2015
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Juillet 2015
    Messages : 44
    Par défaut
    Effectivement y avait un mail avec un numéro commençant par "0" qui du coup n'est pas ris en compte dans excel :-p

    Merci du coup ca me prévient quand ca ne fonctionne pas

    J'ai d'autres projets sur le forum si jamais tu t'ennuie ;-) :
    http://www.developpez.net/forums/d15...o-remplissage/

    http://www.developpez.net/forums/d15...pareil-mesure/

    En tout cas merci pour ton aide !!!

    Et désolé je ne suis qu'un amateur pour le moment ... le peu de connaissance que j'ai je l'ai accumulé sur le net en cherchant par ci par là ...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Extraire données mails outlook vers excel
    Par Genco928 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 24/03/2022, 18h00
  2. Extraire donnees mails Outlook vers Excel
    Par FLO040988 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 28/04/2014, 10h17
  3. Extraire données mails Outlook vers Excel
    Par Dheimoss dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 28/03/2012, 14h19
  4. [XL-2007] Extraire données mails Outlook vers Excel
    Par wiiirr dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 23/12/2011, 12h13
  5. [XL-2003] Extraire données mails Outlook vers Excel
    Par sdispro dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 10/12/2011, 00h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo