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:

Horusbk

XLDnaute Junior
Bonjour, ;)
Je me permets un petit message de relance, ma demande étant toujours d'actualité.

Merci d'avance de votre aide et bon dimanche.
Baptiste
 

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
Bonjour,

Merci pour vos réponses.
Je pensais réellement avoir posté dans le bon sujet puisque je voulais exécuter ma macro depuis excel...

Je vais essayer le codage de Staple1600 je vais peut-être trouver une parade à mon problème ;)
Merci pour votre aide.

Baptiste
 

Staple1600

XLDnaute Barbatruc
Re

Pour rappel, le code que j'ai posté est destiné à Outlook
(C'est plus ergonomique et on peut affecter la macro à la QAT d'Outlook)
 

Staple1600

XLDnaute Barbatruc
Re

Avant d'essayer ne pas oublier d’adapter ce qui doit l'être
(voir les commentaires dans le code)
*: notamment le chemin de l'export.
 

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
 

Staple1600

XLDnaute Barbatruc
Re

Je suppute que oui.
J'aurais du le préciser, il faut bien sur activer la référence "Microsoft Excel xx.0 Object Library"
ou modifier les déclarations des variables en Late Binding.
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas