XL 2010 Extraire membres d'une liste de diffusion en VBA

Horusbk

XLDnaute Junior
Bonjour,

Je cherche un moyen d'extraire dans un fichier excel la liste des membres d'une liste de diffusion donnée et leurs emails respectifs.
Cela est-il possible si on connait la liste de diffusion à extraire ?

Je souhaiterais faire cela afin d'avoir dans un fichier excel une liste à jour en permanence de tous mes collaborateurs.
J'ai ensuite des macros qui pourront envoyer à tout le monde ou des personnes sélectionnées dans cette liste des données spécifiques de notre fichier de travail.

Merci d'avance pour vos lumières :)
Baptiste.
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Bonjour le fil,

Relancer c'est bien
Poster ta question dans la section idoine du forum, c'est mieux ;)
Qui dit liste de diffusion, dit Outlook, pas Excel
Donc, tu aurais plus de réponses dans la bonne section.
 

Staple1600

XLDnaute Barbatruc
Re

Bon, comme c'est dimanche (traditionnellement le jour des B.A), et que j'ai cela en magasin (rayon Outlook)
VB:
Sub ExtraireListeDistrib2XL()
'-<DN>- (*) 4 3 17 [arch:x]
'__________________________
'code à mettre dans Outlook
'NB: Important : Activer la référence "Microsoft Excel xx.0 Object Library"
    Dim objContactGroup As Outlook.DistListItem
    Dim objMember As Outlook.recipient
    Dim objExcelApp As Excel.Application
    Dim objExcelWorkBook As Excel.Workbook
    Dim objExcelWorkSheet As Excel.Worksheet
    Dim i&, nRow&, strPath$, strFilename$
 'Dans Outlook, sélectionner au préalable une liste de diffusion
    Select Case Application.ActiveWindow.Class
      Case olExplorer
      Set objContactGroup = Application.ActiveExplorer.Selection(1)
      Case olInspector
      Set objContactGroup = Application.ActiveInspector.CurrentItem
    End Select
    If TypeOf objContactGroup Is DistListItem Then
       'Création d'un classeur vierge
       Set objExcelApp = CreateObject("Excel.Application")
       Set objExcelWorkBook = objExcelApp.Workbooks.Add
       Set objExcelWorkSheet = objExcelWorkBook.Worksheets(1)
       '-> ligne d'entête
       objExcelWorkSheet.Range("A1:B1") = Array("Nom Contact", "Courriel")
       nRow = 2
       For i = 1 To objContactGroup.MemberCount
           Set objMember = objContactGroup.GetMember(i)
           objExcelWorkSheet.Cells(nRow, 1) = objMember.Name
           objExcelWorkSheet.Cells(nRow, 2) = objMember.Address
           nRow = nRow + 1
       Next
       objExcelWorkSheet.Columns("A:B").AutoFit
       'Adapter le chemin de l'export
       strPath = "C:\Tests\"
       strFilename = strPath & objContactGroup.DLName & ".xlsx"
       objExcelWorkBook.Close True, strFilename
       MsgBox "Export Contacts terminé!", vbInformation, "Informations"
    End If
End Sub
PS: Si j'avais lu ta question dans la section Outlook, j'y aurais répondu plus vite ;)
 
Dernière édition:

Horusbk

XLDnaute Junior
Re, :)
J'ai mis le code dans un module sur Outlook après quelques ajustements (comme tu disais avec le chemin de l'export) j'ai un erreur de compilation "type défini par l'utilisateur non défini" qui pointe en débogage sur cette ligne :

VB:
Dim objExcelApp As Excel.Application

Est-ce qu'il aurait fallu que j'active une référence dans outlook ?

Merci d'avance.
Baptiste
 

Discussions similaires