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 :

Déclaration et implémentation tableau structuré avec mail outlook


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2014
    Messages : 17
    Points : 10
    Points
    10
    Par défaut
    bonjour,

    je souhaite parcourir mes mails outlook et mettre dans un tableau de structure les mails correspondant à ma demande.

    voici la structure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Type MailDate
        mail As Outlook.MailItem
        mydate As Date
    End Type
    et voici comment je l'implémente :
    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
        'Declaration des variables
     
        Dim Ol As Object
        Dim Ns As Object
        Dim Dossier As Object
        Dim i As Object
        Dim mybody() As String
        Dim cpt As Integer
     
        Dim p As MailDate
        Dim mailnontrie() As MailDate
     
        cpt = 0
     
     '//////////////////////////////////////////////////////////////////////////
     
        'instance de l'objet mail                                              
        Set Ol = CreateObject("Outlook.Application", "localhost")              
        Set Ns = Ol.GetNamespace("MAPI")                                       
        Set Dossier = Ns.GetDefaultFolder(olFolderInbox)                       
     
     '//////////////////////////////////////////////////////////////////////////
     
        'extraction des donnees
        For Each i In Dossier.Items
     
            'c'est un mail
             If TypeOf i Is Outlook.MailItem Then
     
                'c'est le bon mail  
                If i.UnRead = True And i.Subject = "test" Then
     
                    'remplissage du champ mail du tableau non trié
                    p.mail = i
     
                '////////////////// remplissage du champ mydate du tableau non trié /////////////////////////////////
                    mybody = Split(p.mail.Body, vbCrLf)                                              
     
                    For compt = 0 To UBound(mybody)                                                                 
     
                        'si c'est la ligne "Date"                                                                   
                        If InStr(1, UCase(mybody(compt)), UCase("Sur la journée du")) > 0 Then                      
     
                            'recuperation info                                                                      
                            p.mydate = Mid(mybody(compt), InStr(1, mybody(compt), "/") - 2, 10)                     
     
                        End If                                                                                      
                    Next                                                                                            
                '////////////////////////////////////////////////////////////////////////////////////////////////////
     
                    ReDim mailnontrie(cpt)
                    mailnontrie(cpt) = p
     
                    cpt = cpt + 1
     
                End If
     
            End If
     
        Next
    le problème c'est que j'ai une erreur d'exécution : variable objet ou variable de bloc With non défini à cet endroit : p.mail = i
    et je ne comprend pas pourquoi !
    si vous pouviez m'aider ça serait vraiment cool !!
    merci d'avance !!

    Sachant que p.mail et i sont tout deux des mailItem, je ne comprend pas mon erreur puisqu'en regardant dans les forums, j'ai rien vu de plus !
    merci d'avance pour votre aide !!

    toutes pistes peut être utile!!
    Merci !

  2. #2
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut

    Bonjour, bonjour,

    comme la variable i est un objet (qui plus est indéfini), p.mail = i est une boulette !
    On ne peut affecter à une propriété un objet …

    Donc nécessité de préciser une propriété de l'objet i, du genre p.propriété = i.propriété …


    __________________________________________________________________________________________


    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  3. #3
    Membre à l'essai
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2014
    Messages : 17
    Points : 10
    Points
    10
    Par défaut
    suite à tes conseils, j'ai donc remplacé

    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    p.mail.Body = i.Body
    p.mail.Subject = i.Subject
    la même erreur persiste (j'ai peut être mal compris ce que tu voulais dire) !

  4. #4
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut

    Non c'est bien l'idée, mais comme je n'ai pas Outlook à disposition, je ne peux explorer plus en avant …

    En mode pas à pas ou via un point d'arrêt, vérifier dans la fenêtre des Variables locales
    si les objets sont bien de même nature et explorer leurs propriétés …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  5. #5
    Membre à l'essai
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2014
    Messages : 17
    Points : 10
    Points
    10
    Par défaut
    d'accord je vais essayer ça ! merci pour ton aide !!

Discussions similaires

  1. [Toutes versions] Création mail outlook avec tableau inséré
    Par forca dans le forum Outlook
    Réponses: 1
    Dernier message: 15/11/2011, 23h27
  2. envoi mail outlook avec vba excel
    Par momolamoto dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 29/09/2010, 10h45
  3. [VBA] Insérer Tableau Excel dans Corps d'un Mail (Outlook)
    Par savior dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 10/10/2006, 11h03
  4. message avec modele outlook: recoit un mail vide
    Par cortex024 dans le forum Outlook
    Réponses: 1
    Dernier message: 06/03/2006, 09h14
  5. [VB6] Déclaration d'un tableau avec variable en paramètre.
    Par méphistopheles dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 23/10/2005, 12h21

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