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

Outlook Discussion :

Programmation dossier de réception autre que le GetDefaultFolder [OL-2007]


Sujet :

Outlook

  1. #1
    Membre habitué
    Inscrit en
    Novembre 2006
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 257
    Points : 153
    Points
    153
    Par défaut Programmation dossier de réception autre que le GetDefaultFolder
    Bonjour,
    voilà un moment que je cherche sur le net, sans réel commencement de solution, donc je m'adresse à ceux qui savent et qui partagent, grand merci à eux!

    Je fais un programme d'automation en VB6 (ou vba), où lors de la réception d'un mail ( fonctionne en vba Outlook 2007), je déclenche tout un tas d'actions.
    Voilà l'exemple que j'ai trouvé en VB6 et qui fonctionne:
    Dim folder As String
    Set myOlApp = CreateObject("Outlook.Application")
    Set myNameSpace = myOlApp.GetNamespace("MAPI")
    Set myFolder = myNameSpace.GetDefaultFolder(olFolderInbox)
    If myFolder.Items.Count = 0 Then

    J'ai créé un compte IMAP qui fonctionne mais qui ne peut pas se mettre "par défaut" (seuls Dossiers Personnels et Archivage le peuvent).

    Pour pouvoir gérer l'arrivée des mails, il faudrait soit changer le compte par defaut, soit changer "GetDefaultFolder".

    J'ai cherché du côté de "Folders" entre autres.

    Merci de vos réponses éclairées et éclairantes.

  2. #2
    Membre habitué
    Inscrit en
    Novembre 2006
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 257
    Points : 153
    Points
    153
    Par défaut Ma réponse qui pourra servir aux autres
    Set myOlApp = CreateObject("Outlook.Application")
    Set myNameSpace = myOlApp.GetNamespace("MAPI").Folders(3)
    Set myfolder = myNameSpace.Folders(1)
    If myfolder.Items.Count = 0 Then
    Set myNewFolder = myfolder.Folders(2)
    MsgBox ("le dossier boite de réception est vide")
    Else
    MsgBox myfolder.Items.Count
    End If
    Pour trouver l'index des folders:
    Nb de folders = Folders.items.count
    Nom du Folder = Folder(1 puis ...).Name

    Voilà en espérant contribuer petitement à votre grand édifice.

  3. #3
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    Salut,

    Ton code n'est pas tout à fait correct, même s'il fonctionne.

    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
     
     
    'Si tu lances le code à partir d'Outlook  directement cette ligne n'est pas nécessaire.
    'Set myOlApp = CreateObject("Outlook.Application")
     
    'tu peux mettre pour lancer aussi bien de excel que de outlook 
        Dim myOlApp As Object
        If Application.Name = "Outlook" Then
            Set myOlApp = Application
        Else
            Set myOlApp = CreateObject("outlook.application")
        End If
     
        'Ta variable ci-dessous est censée contenir un Namespace, là tu lui affecte déjà un DOSSIER , mais comme par défaut elle est en variant ca marche
        Dim MyNameSpace As Outlook.Namespace
        ' avec cette syntaxe tu auras une erreur incompatibilité de type
        'Set MyNameSpace = myOlApp.GetNamespace("MAPI").Folders(3)
     
        Set MyNameSpace = myOlApp.GetNamespace("MAPI")
        Dim My_BAL As Outlook.Folder
     
    ' TU PEUX METTRE L'INDEX du dossier mais il pourrait changer lors de l'ajout d'un nouveau dossier
        'Set myfolder = My_BAL.Folders(1)
     
    'avec son nom c'est plus simple
        Set My_BAL = MyNameSpace.Folders("boite toto")
     
     
        Dim myfolder As Outlook.Folder
    'pareil pour le sous dossier
     
        Set myfolder = My_BAL.Folders("CLIENTS")
        If myfolder.Items.Count = 0 Then
            ' A quoi sert cette ligne ?
            'Set myNewFolder = myfolder.Folders(2)
     
            MsgBox ("le dossier boite de réception est vide")
        Else
            MsgBox myfolder.Items.Count
        End If

  4. #4
    Membre habitué
    Inscrit en
    Novembre 2006
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 257
    Points : 153
    Points
    153
    Par défaut Merci de ces précisions. J'en prends note.
    Merci de ces précisions. J'en prends note.

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

Discussions similaires

  1. VB déplacer(position) un programme autre que VB
    Par piwaye20 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 29/10/2015, 11h25
  2. [Débutant] programme pour copier une image d'un dossier a un autre avec c#
    Par Simomis dans le forum C#
    Réponses: 5
    Dernier message: 26/04/2013, 12h01
  3. ouvrir lien hypertexte dans un programme autre que IE
    Par Oh!Tofocus dans le forum Excel
    Réponses: 3
    Dernier message: 04/04/2010, 12h16
  4. Réponses: 2
    Dernier message: 27/03/2009, 16h45
  5. [JDBC] Programmation autre que Java
    Par Vow dans le forum JDBC
    Réponses: 2
    Dernier message: 23/06/2004, 11h22

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