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 :

Accéder aux listes de diffusion OUTLOOK [Toutes versions]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Seine et Marne (Île de France)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 73
    Par défaut Accéder aux listes de diffusion OUTLOOK
    Bonjour,

    Je cherche à récupérer les adresses mail par liste de diffusion, comment puis-je faire ?

    Merci d'avance

  2. #2
    Invité
    Invité(e)
    Par défaut
    En cherchant un peu tu tombes sur ce tutoriel:
    http://dolphy35.developpez.com/article/outlook/vba/

    Le code suivant permet de lister tous les contacts de chaque liste de diffusion:
    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
    Option Explicit
     
    Public Sub ListeDiffusion()
     
      Dim i As Integer, j As Integer
      Dim myOlApp As Outlook.Application
      Dim myOlNmp As Outlook.Namespace
      Dim myOlLst As Outlook.Items
     
      Set myOlApp = New Outlook.Application
      Set myOlNmp = myOlApp.GetNamespace("MAPI")
      Set myOlLst = myOlNmp.GetDefaultFolder(olFolderContacts).Items
     
      For i = 1 To myOlLst.Count
        If TypeName(myOlLst.Item(i)) = "DistListItem" Then
     
          'Nom de la liste de contact
          Debug.Print (myOlLst.Item(i))
          'Lister les adresses mail associées à la liste de contact
          For j = 1 To myOlLst.Item(i).MemberCount
            Debug.Print (myOlLst.Item(i).GetMember(j).Address)
          Next j
     
        End If
      Next
     
      Set myOlLst = Nothing
      Set myOlNmp = Nothing
      Set myOlApp = Nothing
     
    End Sub
    Il faut activer la référence 'Microsoft Outlook xx.x Object Library' ou sinon tu repasses tout en 'late binding'.
    Dernière modification par Invité ; 31/07/2013 à 11h34.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Seine et Marne (Île de France)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 73
    Par défaut
    Merci,

    C'est un bon début, mais apparament on peut créer des listes, mais je trouve rien pour les répertorier, les lire et extraire les adresses mail.

    Merci d'avance, à ceux qui feront avancer mon problème.

  4. #4
    Invité
    Invité(e)
    Par défaut
    J'ai répondu à ta question initiale qui consistait à récupérer les adresses mail par liste de diffusion.
    Tu n'as pas précisé que tu voulais en créer de nouvelles...

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Seine et Marne (Île de France)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 73
    Par défaut
    Non, c'est ça, je veux pas en créer mais bien lire celles existantes.

    Le code fonctionne mais ne me ramène rien.
    En fait j'ai un outlook mais qui est connecté avec Zimbra (webmail).

    C'est peut etre pour ca !!!

  6. #6
    Invité
    Invité(e)
    Par défaut
    La version pour créer des listes et ajouter des contacts (ça peut toujours servir):
    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
    Option Explicit
     
    Public Sub ListeDiffusion()
     
      Dim i As Integer, j As Integer
      Dim myOlApp As Outlook.Application
      Dim myOlNmp As Outlook.Namespace
      Dim myOlLst As Outlook.Items
      Dim myOlDli As Outlook.DistListItem
      Dim myOlCtm As Outlook.ContactItem
      Dim myOlRpt As Outlook.Recipients
     
      Set myOlApp = New Outlook.Application
      Set myOlNmp = myOlApp.GetNamespace("MAPI")
      Set myOlLst = myOlNmp.GetDefaultFolder(olFolderContacts).Items
     
      'Lister les adresses mail des listes de diffusion
      For i = 1 To myOlLst.Count
        If TypeName(myOlLst.Item(i)) = "DistListItem" Then
     
          'Nom de la liste de contact
          Debug.Print (myOlLst.Item(i))
          'Lister les adresses mail associées à la liste de contact
          For j = 1 To myOlLst.Item(i).MemberCount
            Debug.Print (myOlLst.Item(i).GetMember(j).Address)
          Next j
     
        End If
      Next
     
      'Créer une liste de diffusion
      Set myOlDli = myOlApp.CreateItem(olDistributionListItem)
      myOlDli.DLName = "Nouvelle Liste"
      myOlDli.Save
     
      'Création d'un contact
      Set myOlCtm = myOlApp.CreateItem(olContactItem)
      With myOlCtm
        .FullName = "Test"
        .Email1Address = "test.test@test.fr"
      End With
     
      'Ajout du contact à la liste
      Set myOlRpt = myOlApp.CreateItem(olMailItem).Recipients
      myOlRpt.Add myOlCtm.FullName & " " & myOlCtm.Email1Address
      myOlRpt.ResolveAll
      myOlDli.AddMembers myOlRpt
     
      'Enregistrement
      myOlDli.Save
     
      Set myOlApp = Nothing
     
    End Sub
    Sinon le dossier ou sont récupérées les listes est définit ici:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set myOlLst = myOlNmp.GetDefaultFolder(olFolderContacts).Items
    Et qui correspond au dossier standard 'Contacts'.

    Il faut donc que tu adaptes le dossier de recherche à ta situation.

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

Discussions similaires

  1. Problème liste de diffusion outlook
    Par pietroo dans le forum VBA Outlook
    Réponses: 4
    Dernier message: 22/05/2014, 16h30
  2. Problème liste de diffusion outlook
    Par pietroo dans le forum Général VBA
    Réponses: 1
    Dernier message: 22/05/2014, 09h55
  3. Réponses: 0
    Dernier message: 16/07/2013, 21h46
  4. Création liste de diffusion outlook en VB
    Par lololebricoleur dans le forum Discussions diverses
    Réponses: 0
    Dernier message: 21/03/2011, 19h41
  5. Réponses: 7
    Dernier message: 30/03/2006, 10h04

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