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

VBA Access Discussion :

acceder a outlook via vba access


Sujet :

VBA Access

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    251
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 251
    Points : 57
    Points
    57
    Par défaut acceder a outlook via vba access
    bonsoir,

    je souhaite traiter des mails outlook depuis le vba d'access
    je parcoure donc la boite aux lettre pour trouver les mails qui correspondent à certains criteres mais dans la boite de réception se trouvent des items qui ne sont pas vraiment des mail cad qui sont par exemple des demandes de réunion des accusés de réception, des acceptations de réunion....
    et lorsque la macro tombe sur ces items il y a un message d'erreur signalant une incompatibilité de type.
    comment fautil faire pour sauter ces items et passer au mail suivant?

    pour parcourir les mails je définis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    dim msg as outlook.mailitem
    et je fais parcourir "msg" la boite de reception avec une boucle for

    merci

  2. #2
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 835
    Points : 14 937
    Points
    14 937
    Par défaut
    Bonsoir,
    j'ai fait le test et pas moyen de traiter le problème autrement que de trapper l'erreur avec une gestion d'erreur.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    251
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 251
    Points : 57
    Points
    57
    Par défaut
    bonjour

    j'ai essayé de résoudre par la gestion d'erreur mais je n'ai pas réussi.

    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
     
     
    dim outfolder as Outlokk.MAPIFolder
     
    for each msg in outfolder.Items
        For i = 1 To 5
           If msg.Attachments.Count> 0 And (mail.Subject = "jour " & i ) Then
    '
    '
           End If
     
     
         Next
        If Err.Number<> 13 Then Debug.Print Err.Description
    Next
    j'ai essayé de récuperer la description de l'erreur à plusieurs endroit mais ca bog toujours au deuxieme next
    si quelqu'un a une idée, merci

  4. #4
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 835
    Points : 14 937
    Points
    14 937
    Par défaut
    Bonsoir,
    ton code, après quelques modifications, ne génère plus l'erreur du début, à toi de l'adapter selon tes besoins :
    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
    Dim otlkapp As Outlook.Application
    Dim otlknamespace As Outlook.Namespace
    Dim otlkMailtmp As Outlook.MailItem
    Dim stfldtmp As String
    
    Set otlkapp = CreateObject("Outlook.application")
    Set otlknamespace = otlkapp.GetNamespace("MAPI")
    stfldtmp = "Boîte de réception"
    Dim outfolder As Outlook.MAPIFolder
     Set outfolder = otlknamespace.Folders("Ta Boîte aux lettres")
    'For Each Msg In outfolder.items
       For Each Msg In outfolder.Folders.item(stfldtmp).items
        Debug.Print Msg.Subject  ' pour tester
        For i = 1 To 5
           If Msg.Attachments.Count > 0 And (Msg.Subject = "jour " & i) Then
    '
    '
           End If
         Next
       ' If err.Number <> 13 Then Debug.Print err.DESCRIPTION
    Next

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    251
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 251
    Points : 57
    Points
    57
    Par défaut
    bonjour,
    merci pour votre retour.

    j'ai essayé de modifier le code mais j'ai toujours la même erreur au même endroit

    j'ai remplacé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Set outfolder = otlknamespace.Folders("Ta Boîte aux lettres")
    en mettant le nom de ma boite aux lettre au lieu et place de "Ta Boîte aux lettres"
    savez-vous pourquoi?
    par ailleurs, si ce code tourne sur un poste alors faut-il rechanger "Ta Boîte aux lettres" par le bon nom de la boite?
    est-il possible de récupérer ce nom automatiquement sans changer ce nom manuellement à chaque fois que ce code est lancé sur un autre poste?

    merci

  6. #6
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 835
    Points : 14 937
    Points
    14 937
    Par défaut
    Bonjour,
    pour ne plus avoir de messages d'erreur, il faut ... les éviter
    J'ai donc trouvé la parade en sélectionnant uniquement les items de type mail dans la boucle :
    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
     
    Dim olkapp As Outlook.Application
    Dim olknamespace As Outlook.Namespace
    Dim olkMailtmp As Outlook.MailItem
    Dim stfldtmp As String
    Dim itI As Integer, itJ As Integer, itK As Integer, itL As Integer
     
    Set olkapp = CreateObject("Outlook.application")
    Set olknamespace = olkapp.GetNamespace("MAPI")
    stfldtmp = "Boîte de réception"
     
     
    For itI = 1 To olknamespace.Folders.Count
        For itJ = 1 To olknamespace.Folders(itI).Folders.Count
        ' Lire les dossiers Boîte de Réception seulement
            If olknamespace.Folders(itI).Folders(itJ).Name = stfldtmp Then
                For itK = 1 To olknamespace.Folders(itI).Folders(stfldtmp).items.Count
        ' Sélectionner les items de type Mail seulement
                    If olknamespace.Folders(itI).Folders(stfldtmp).items(itK).Class = 43 Then
                        Set olkMailtmp = olknamespace.Folders(itI).Folders(stfldtmp).items(itK)
        ' Lire les mails avec des pièces jointes uniquement
                         If olkMailtmp.Attachments.Count > 0 Then
                             For itL = 1 To olkMailtmp.Attachments.Count
                                If olkMailtmp.Subject = " jour " & itL Then
                                '
                                '
                                End If
                             Next itL
                         End If
                    End If
                 Next itK
            End If
       Next itJ
    Next itI
     
    Set olkapp = Nothing
    Set olknamespace = Nothing

Discussions similaires

  1. Extraction pièces jointes Outlook via VBA
    Par pontoise dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 14/07/2017, 14h34
  2. Feuilles Excel via VBA Access
    Par h_adil dans le forum VBA Access
    Réponses: 2
    Dernier message: 08/07/2008, 22h05
  3. acces outlook via VBA access
    Par Kuuei dans le forum Access
    Réponses: 1
    Dernier message: 11/12/2006, 11h43
  4. Mise en page Excel via VBA Access
    Par popo68 dans le forum VBA Access
    Réponses: 3
    Dernier message: 06/11/2006, 17h03
  5. Manipulation du carnet d'adresse outlook via VBA Excel?
    Par Dragon Tours dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 05/11/2005, 12h16

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