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

  • Initiateur de la discussion Initiateur de la discussion Horusbk
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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:
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.
 
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:
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
40
Affichages
1 K
Retour