All posts tagged Outlook

VBA EXCEL & OUTLOOK : Exporter le carnet d’adresse Outlook vers Excel

Pour diverses raisons, il peut être utile d’exporter le carnet d’adresse d’Outlook vers Excel.

Voici un bout de code très simple qui boucle sur toutes les listes d’adresses Outlook et le contenu dans un fichier Excel. Au préalable, il faut bien entendu activer dans l’éditeur VBA la référence Outlook (menu « outils – références ») :


Sub EXPORT_ADRESSES()
Dim MonOutlook As New Outlook.Application 
Set MaSession = MonOutlook.Session 
Cells.ClearContents 
Cells(1, 1).Value = "Liste" 
Cells(1, 2).Value = "Addresse" 
Cells(1, 3).Value = "Nom" 
Cells(1, 4).Value = "Type" 
ligne = 2
For Each Liste In MaSession.AddressLists 
For Each Entry In Liste.AddressEntries 
Cells(ligne, 1).Value = Liste.Name 
Cells(ligne, 2).Value = Entry.Address 
Cells(ligne, 3).Value = Entry.Name 
Cells(ligne, 4).Value = Entry.Type 
ligne = ligne + 1 
Next 
Next
End Sub
Top

VBA EXCEL & OUTLOOK : Ecrire un mail automatiquement

Ou comment écrire un message (ou email, ou mél, ou mail…) automatiquement, en utilisant le modèle objet de Outlook. Quel est l’utilité ? Disons que pour un envoi massif de mails, cela peut être utile. Un publipostage en quelque sorte… On peut également balayer le carnet d’adresse pour faire du mailing. Alors autant le dire tout de suite, il est évident que ce genre de fonctionnalité peut s’apparenter à du spam, à utiliser à bon escient !

Nous pouvons préparer une feuille (voir ci-dessous) nommée « outlook » et préparer des mails. On peut ainsi « calculer » des mails à envoyer sous Excel, puis les envoyer automatiquement avec cette méthode.


Les emails générés et envoyés ressemblent à :



Voici le code (il faut au préalable activer la référence Outlook dans le menu de l’éditeur VBA « outils – références » : Microsoft Outlook xx.0 object library). Le mail sera envoyé avec le compte de messagerie par défaut.

Sub CREATION_MAIL()
Dim MonOutlook As New Outlook.Application
Dim MyMail As MailItem
Set MyMail = MonOutlook.CreateItem(olMailItem)
Dim chaine As String
Sheets("outlook").Select
ligne = 2
Do While Cells(ligne, 1).Value <> vbEmpty
 adresse_mail = Cells(ligne, 2)
 If Cells(ligne - 1, 2).Value <> adresse_mail Then
'création d'un nouveau mail car on est sur une nouvelle adresse mail
 Set MyMail = MonOutlook.CreateItem(olMailItem)
 MyMail.To = adresse_mail
 MyMail.CC = adresse_mail 'ici on peut mettre les adresse en copie
 MyMail.Subject = "sujet du message envoyé par outlook en vba"
 chaine = ""
 End If
 chaine = chaine & Cells(ligne, 1).Value & Chr(10) 'saut de ligne
 If Cells(ligne + 1, 2).Value <> adresse_mail Then
'envoi du mail car à la ligne suivante nous avons un autre destinataire
 MyMail.Body = chaine
'pour attacher un fichier
 'MyMail.Attachments.Add ("C:\monfichier.xlks")
 MyMail.Send
 End If
 ligne = ligne + 1
Loop
Set MonOutlook = Nothing
End Sub
Top
Page 1 of 1

Contactez-nous contact@expert-data.fr

EXPERT data, solutions pour TPE/PME et grands comptes