Developpez.com

Plus de 2 000 forums
et jusqu'à 5 000 nouveaux messages par jour

FAQ ExcelConsultez toutes les FAQ

Nombre d'auteurs : 46, nombre de questions : 845, dernière mise à jour : 30 mars 2017 

 
OuvrirSommaireLes macros VBApiloter d'autres applications depuis ExcelLes messageries

Si vous disposez d'Excel2002, ou ultérieur:

Vba
Sélectionnez

Sub envoiPlageCellules_Excel2002()
ActiveSheet.Range("A1:B5").Select ' la plage de cellules à envoyer
ActiveWorkbook.EnvelopeVisible = True
 
With ActiveSheet.MailEnvelope
    .Introduction = "bonjour , ci joint les données ..."
    .Item.To = "destinataire@dvp.fr"
    .Item.Subject = "le sujet"
    .Item.Send
End With
End Sub




Sinon, vous pouvez utiliser:

Vba
Sélectionnez

Sub PlageDeCellulesDansCorpsDuMessage()
'testé avec XP
'adapté de : http://support.microsoft.com/default.aspx?kbid=286430
Dim iMsg As Object, iConf As Object
Dim strHTML As String
Dim i As Byte, j As Byte
 
Set iMsg = CreateObject("CDO.Message")
Set iConf = CreateObject("CDO.Configuration")
 
strHTML = ""
strHTML = strHTML & "<HEAD>"
strHTML = strHTML & "<BODY>"
strHTML = strHTML & "Bonjour , <BR>vous trouverez ci joint le tableau demandé<BR><BR>"
strHTML = strHTML & "<B><SPAN STYLE='background-color:green;font-size:6mm'>Résultats : </SPAN></B><BR><BR>"
strHTML = strHTML & "<TABLE BORDER>"
 
For i = 1 To 5 'nombre de lignes (exemple plage A1:B5)
    strHTML = strHTML & "<TR halign='middle'nowrap>"
    For j = 1 To 2 'nombre de colonnes
        strHTML = strHTML & "<TD bgcolor='yellow'align='center'><FONT COLOR='blue'SIZE=3>" _
        & Cells(i, j) & "</FONT></TD>"
    Next j
    strHTML = strHTML & "</TR>"
Next i
 
 
strHTML = strHTML & "</TABLE>"
 
strHTML = strHTML & "<BR><BR>Cordialement<BR>" & Environ("username")
strHTML = strHTML & "</BODY>"
strHTML = strHTML & ""
 
With iMsg
    Set .Configuration = iConf
    .To = "destinataire@dvp.fr" 'renvoie une erreur si l'adresse est non valide
    '.From = "youralias@yourdomain.com"
    .Subject = "Test Envoi Tableau par mail"
    .HTMLBody = strHTML
    .Send
End With
 
End Sub




La fonction suivante permet la mise forme d'une plage de cellules dans la chaîne de caractères, pour ensuite l'insérer dans le corps du message:

Vba
Sélectionnez
 
Function corps(x As Range) As Variant
    Dim ligne As Integer
    Dim col As Integer
    Dim moncorps As Variant
 
    ligne = x.Rows.Count
    col = x.Columns.Count
 
    For ligne = 1 To x.Rows.Count
        For col = 1 To x.Columns.Count
            moncorps = moncorps & " " & x.Cells(ligne, col)
        Next col
 
        moncorps = moncorps & Chr(10)
    Next ligne
 
    corps = moncorps
End Function




Ce code permet depuis Excel de sélectionner une plage de cellules dans une feuille et d'envoyer cette plage vers un nouvel E-mail d'Outlook.
ATTENTION :
Ce code doit être placé dans un module d'Excel. Ne pas omettre de cocher la référence 'Microsoft Outlook xx.x Object Library.

Vba
Sélectionnez
 
Option Explicit
 
'-----------------------------------------------------------------------
'
' Lit le contenu d'un fichier texte et retourne son
' contenu
'
'-----------------------------------------------------------------------
 
 Public Function ReadFile(sFileName) As String
 
Dim fso As Object, fFile As Object
Dim sTemp As String
 
   Set fso = CreateObject("Scripting.FileSystemObject")
 
   Set fFile = fso.OpenTextFile(sFileName, 1, False)
 
   sTemp = fFile.ReadAll
 
   fFile.Close
 
   Set fFile = Nothing
 
   ReadFile = sTemp
 
End Function
 
'-----------------------------------------------------------------------'
' Cette routine va créer une instance de Outlook (si
' pas encore démarré) et va ensuite ouvrir une
' fenêtre de type mail.   Le corps du message sera
' initialisé avec le contenu d'un fichier de type
' HTML.   Ce fichier aura été préalablement
' créé par la routine SendRangeByMail
'
' Nécessite l'ajout d'une référence vers "Microsoft
' Outlook Object Library"
'
'-----------------------------------------------------------------------
 
 Sub PrepareOutlookMail(ByVal sFileName As String)
 
Dim appOutlook As Outlook.Application
Dim oMail As Outlook.MailItem
 
   Set appOutlook = CreateObject("Outlook.Application")
 
   ' Si Outlook n'était pas ouvert, l'instruction
    ' ci-dessus aura eu pour conséquence de
    ' démarrer Outlook.
    'Ce type de démarrage par automation fait
    'apparaître une fenêtre de sécurité qui demande
    'à l'utilisateur de permettre au programme de
    'continuer.
    '
    'Le message est "A program is trying to send an
    'email.   Do you want to allow..."
    '
    'Dans le cas  l'utilisateur aurait cliqué sur No,
    'l'objet appOutlook est égal à Nothing.  Il est
    'donc impossible de continuer.
 
   If Not (appOutlook Is Nothing) Then
 
      Set oMail = appOutlook.CreateItem(olMailItem)
 
      oMail.HTMLBody = ReadFile(sFileName)
 
      oMail.Display
 
      Set oMail = Nothing
      Set appOutlook = Nothing
 
   End If
 
End Sub
 
'-----------------------------------------------------------------------
'
' La routine SendRangeByMail va proposer à
' l'utilisateur de sélectionner une plage de cellules
' en Excel et va ensuite envoyer cette plage par
' mail, dans le corps du mail.
'
'-----------------------------------------------------------------------
 
 Sub SendRangeByMail()
 
Dim rngeSend As Range
 
   With Application
 
      On Error Resume Next
 
      ' Demande à l'utilisateur de sélectionner la
      ' plage de cellule
 
      Set rngeSend = .InputBox(Prompt:="Please select range you wish to send.", Type:=8, Default:=.Selection.Address)
 
      ' rngeSend Is Nothing lorsque l'utilisateur ne fait
      ' aucun choix
 
       If rngeSend Is Nothing Then Exit Sub
 
      On Error GoTo 0
 
      ' Exporte la plage vers un fichier de type HTML;
      ' ceci afin de respecter la mise en page de la
      ' plage
 
      .ActiveWorkbook.PublishObjects.Add(4, "C:\Temp\XLRange.htm", rngeSend.Parent.Name, rngeSend.Address, 0, "", "").Publish True
 
      ' Appelle la routine qui va se charger de créer
      ' un mail
 
      Call PrepareOutlookMail("C:\Temp\XLRange.htm")
 
      ' Le fichier HTML n'est plus nécessaire
 
      Kill "C:\Temp\XLRange.htm"
 
   End With ' With Application
 
End Sub
Mis à jour le 19 février 2008  par SilkyRoad, Random, cavo789

Via CDO, en cochant sous VBE Outils / Références "Microsoft CDO for Exchange xxxx Library".
A adapter à votre contexte, ici envoi de fichier Pdf:

Vba
Sélectionnez
 
Sub Envoi_CDO1()
Dim CdoMessage As CDO.Message
Dim Fichier As Variant
 
    ChDir "C:\Documents and Settings\UserName\Mes documents\PdfOut"
    Fichier = Application.GetOpenFilename("Fichiers PDF (*.pdf), *.pdf")
 
    If Fichier = False Then Exit Sub
 
    Set CdoMessage = New CDO.Message
    With CdoMessage
        .Subject = "Exemple"
        .From = "xxxxx@wanadoo.fr"
        .To = "yyyyy@orange.fr"
        .CC = ""
        .BCC = ""
        .TextBody = "Texte dans le corps de message"
        .AddAttachment Fichier
        .Send
    End With
 
    Set CdoMessage = Nothing
End Sub



Ou sans cocher de référence:

Vba
Sélectionnez

Sub Envoi_CDO2()
Dim CdoMessage As Object
Dim Fichier As Variant
 
    ChDir "C:\Documents and Settings\UserName\Mes documents\PdfOut"
    Fichier = Application.GetOpenFilename("Fichiers PDF (*.pdf), *.pdf")
 
    If Fichier = False Then Exit Sub
 
    Set CdoMessage = CreateObject("CDO.Message")
    With CdoMessage
        .Subject = "Exemple"
        .From = "xxxxx@wanadoo.fr"
        .To = "yyyyy@orange.fr"
        .CC = ""
        .BCC = ""
        .TextBody = "Texte dans le corps de message"
        .AddAttachment Fichier
        .Send
    End With
 
    Set CdoMessage = Nothing
End Sub




Pour envoyer la feuille active:

Vba
Sélectionnez

Option Explicit
 
Sub Tst()
Dim Sourcewb As Workbook
Dim Destwb As Workbook
Dim Temp As String
Dim CdoMessage As Object
Dim Fichier As String
 
    Set Sourcewb = ActiveWorkbook
    ActiveSheet.Copy
    Set Destwb = ActiveWorkbook
 
    Temp = ThisWorkbook.Path & Application.PathSeparator & "Toto.xls"
 
    With Application
        .ScreenUpdating = False
        .DisplayAlerts = False
    End With
 
    Destwb.SaveAs Temp
    Fichier = Destwb.Path & Application.PathSeparator & Destwb.Name
    Destwb.Close
    Application.DisplayAlerts = True
 
    Set CdoMessage = CreateObject("CDO.Message")
    With CdoMessage
        .Subject = "Exemple"
        .From = "xxxxx@wanadoo.fr"
        .To = "yyyyy@hotmail.fr"
        .CC = ""
        .BCC = ""
        .TextBody = "Texte dans le corps de message"
        .AddAttachment Fichier
        .Send
    End With
 
    Application.ScreenUpdating = True
 
    Set CdoMessage = Nothing
    Kill Fichier
End Sub




Pour le classeur complet:

Vba
Sélectionnez

Option Explicit
 
Sub Tst_Wb()
Dim SourceWb As Workbook
Dim CdoMessage As Object
Dim Fichier As String
 
    Set SourceWb = ActiveWorkbook
    Fichier = ThisWorkbook.Path & Application.PathSeparator & "Toto.xls"
 
    SourceWb.SaveCopyAs Fichier
 
    Set CdoMessage = CreateObject("CDO.Message")
    With CdoMessage
        .Subject = "Exemple"
        .From = "xxxxx@wanadoo.fr"
        .To = "yyyyy@orange.fr"
        .CC = ""
        .BCC = ""
        .TextBody = "Texte dans le corps de message"
        .AddAttachment Fichier
        .Send
    End With
 
    Set CdoMessage = Nothing
    'Kill Fichier
End Sub



On pourra dans ce cas envisager d'envoyer le Classeur complet sans le code VBA.

Créé le 2 octobre 2007  par Kiki29

Vous devez préciser le champ:
disposition-notification-to pour la notification.
return-receipt-to pour l'accusé de réception.

Vba
Sélectionnez

Sub EnvoiMail_AvecNotification_Et_AccuseReception()
    'testé avec WinXP & Excel2002
Dim iMsg As Object, iConf As Object
 
Set iMsg = CreateObject("cdo.message")
Set iConf = CreateObject("cdo.configuration")
 
With iMsg
    Set .Configuration = iConf
    .To = "destinataire@provider.fr"
    '.From = "<valid e-mail address>"
    .Subject = "Le sujet du message"
    .HTMLBody = "Ceci est un essai ..."
    .fields("urn:schemas:mailheader:disposition-notification-to") = "expediteur@provider.fr"
    .fields("urn:schemas:mailheader:return-receipt-to") = "expediteur@provider.fr"
 
    .fields.Update
    .Send
End With
 
End Sub
Créé le 26 mai 2008  par SilkyRoad

L'adresse du serveur SMTP est nécessaire pour certains FAI.
Ce champ doit donc être précisé dans votre procédure :

Vba
Sélectionnez

Sub EnvoiMail_CDO()
Dim iMsg As Object, iConf As Object, Flds As Object
 
Set iMsg = CreateObject("cdo.message")
Set iConf = CreateObject("cdo.configuration")
 
Set Flds = iConf.fields
With Flds
    .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
    'remplacez "smtp.nomserveur.fr" par le nom de serveur de votre FAI :
    'http://outlook.developpez.com/faq/index.php?page=Configuration#Paras_FAI
    .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.nomserveur.fr"
    .Update
End With
 
With iMsg
    Set .Configuration = iConf
    .To = "destinataire@provider.fr"
    .From = "emetteur@mail.fr"
    .Subject = "Le sujet du message"
    .HTMLBody = "Ceci est un essai ..."
    .Send
End With
 
End Sub




Consultez la liste des Paramètres POP et SMTP des FAI Francophones.

Créé le 26 mai 2008  par SilkyRoad
Vba
Sélectionnez

Sub CreationMailEtLienHypertexte()
    Dim OlApp As Outlook.Application
    Dim OlItem As Outlook.MailItem
    'Nécessite d'activer la référence "Microsoft Outlook xx.x Object Library"
 
    Set OlApp = New Outlook.Application
    Set OlItem = OlApp.CreateItem(olMailItem)
 
    With OlItem
        .To = "NomPrenom@mail.fr"
        .Subject = "Le titre du message"
        .Body = "Découvrez Microsoft Office sur le site Developpez" & _
            vbLf & "http://www.developpez.com" & vbLf & vbLf & _
            "Cordialement" & vbLf & "mailto:emetteur@mail.fr"
        .Display
        .Save
        .Send
    End With
 
    Set OlItem = Nothing
    Set OlApp = Nothing
End Sub



Un autre exemple en utilisant la méthode CDO.


Vba
Sélectionnez

Sub liensDansCorpsDuMessage_CDO()
'adapté de : http://support.microsoft.com/default.aspx?kbid=286430
Dim iMsg As Object, iConf As Object
Dim strHTML As String
 
Set iMsg = CreateObject("CDO.Message")
Set iConf = CreateObject("CDO.Configuration")
 
strHTML = ""
strHTML = strHTML & "<HEAD>"
strHTML = strHTML & "<BODY>"
strHTML = strHTML & "Bonjour , <BR>Découvrez Microsoft Office sur le site Developpez<BR><BR>"
strHTML = strHTML & "<A href='http://www.developpez.com'>Cliquez ici.</A>"
 
strHTML = strHTML & "<BR><BR>Cordialement<BR>" & Environ("UserName") & "<BR>"
strHTML = strHTML & "<A href=mailto:emetteur@mail.fr>Mon adresse mail</A>"
strHTML = strHTML & "</BODY>"
strHTML = strHTML & ""
 
With iMsg
    Set .Configuration = iConf
    .To = "NomPrenom@mail.fr" 'Renvoie une erreur si l'adresse est non valide
    '.From = "youralias@yourdomain.com"
    .Subject = "Test Envoi liens par mail"
    .HTMLBody = strHTML
    .Send
End With
End Sub
Créé le 2 octobre 2007  par SilkyRoad

La liste des destinataires doit être spécifiée sous forme de tableau. Vous pouvez aussi utiliser les listes de distribution.

Vba
Sélectionnez

Sub EnvoiClasseur_MultiDestinataires()
 
'La méthode SendMail envoie le classeur en utilisant le système de messagerie installé.
'La liste des destinataire doit être spécifiée sous forme de tableau.
'Dans cet exemple "MaListeDeDistribution" est une liste de distribution existante dans
'la messagerie.
ActiveWorkbook.SendMail _
    Recipients:=Array("MaListeDeDistribution", _
        "AutreDestinataire01@mail.com", "AutreDestinataire02@mail.com"), _
    Subject:="Rapport hebdomadaire " & ActiveWorkbook.Name, _
    ReturnReceipt:=True
 
End Sub
Créé le 5 décembre 2007  par SilkyRoad

La boite de dialogue xlDialogSendMail possède 3 arguments paramétrables : destinataires, sujet, accusé de réception.
Vous pouvez l'utiliser ainsi dans votre macro :

Vba
Sélectionnez

Dim return_receipt As Boolean
Dim strRecipients As String, strSubject As String
 
'Copie la feuille active qui va être envoyée par mail
ActiveSheet.Copy
 
strRecipients = "destinataire@provider.fr"
strSubject = "Le sujet du message"
return_receipt = True
 
Application.Dialogs(xlDialogSendMail).Show _
    strRecipients, _
    strSubject, _
    return_receipt
 
'Supprime le classeur envoyé
'ActiveWorkbook.Close False




Les adresses multiples doivent être spécifiées dans un tableau Array:

Vba
Sélectionnez

Dim MailTab As Variant
 
MailTab = Array("mimi@test.fr", "riri@test.fr", "fifi@test.fr")
Application.Dialogs(xlDialogSendMail).Show MailTab
Mis à jour le 18 novembre 2008  par SilkyRoad
Vba
Sélectionnez
 
Sub MailOutlookExpress()
Dim Adresse As String, Sujet As String, Texte As String
 
Adresse = "Destinataire01@mail.fr;Destinataire02@mail.fr"
Sujet = "Le sujet"
Texte = "Bonjour," & vbCrLf & vbCrLf _
    & "Vous trouverez ci joint les infos demandées" & vbCrLf & vbCrLf & _
    "Cordialement" & vbCrLf & Environ("UserName")
 
Shell "C:\Program Files\Outlook Express\msimn.exe " & "/mailurl:mailto:" & _
    Adresse & "?subject=" & Sujet & "&Body=" & Texte
End Sub
Créé le 5 décembre 2007  par SilkyRoad

Ce code permet, en pilotant Outlook par Automation, de boucler sur les messages de tous les dossiers Outlook (boite de réception, éléments envoyés, éléments supprimés ... et tous leurs sous dossiers) pour en extraire les pièces jointes et les enregistrer sur le disque dur.

Vba
Sélectionnez

Option Explicit
'------------------------------------------------------------------------
'Nécessite d'activer la référence Microsoft Outlook xx.xx Object Library
'------------------------------------------------------------------------
 
 
Dim x As Integer
    'La boite de réception, la boite des éléments supprimés et tous leurs
    'sous dossiers sont pris en compte.
     Sub ExportePiecesJointes()
    Dim Ol As New Outlook.Application
    Dim Ns As Outlook.Namespace
    Dim Dossier As Outlook.MAPIFolder
 
    Set Ns = Ol.GetNamespace("MAPI")
    Set Dossier = Ns.Folders(1)
 
    SearchFolders Dossier
    x = 0
End Sub
 
 
Private Sub SearchFolders(ByVal Fld As Outlook.MAPIFolder)
Dim y As Integer
Dim OLmail 'As Outlook.MailItem
Dim pceJointe As Outlook.Attachment
Dim SousDossier As Outlook.MAPIFolder
 
For Each SousDossier In Fld.Folders
    If SousDossier.DefaultItemType = 0 Then
        For Each OLmail In SousDossier.Items
            If Not OLmail.Attachments.Count = 0 Then
                For y = 1 To OLmail.Attachments.Count
                     Set pceJointe = OLmail.Attachments(y)
                     x = x + 1
                     pceJointe.SaveAsFile "C:\" & x & "_" & pceJointe
                    Set pceJointe = Nothing
                Next y
            End If
        Next OLmail
    End If
    SearchFolders SousDossier
Next SousDossier
End Sub
Créé le 2 octobre 2007  par SilkyRoad

Un fichier .msg est le format d'un message Outlook sauvegardé sur votre disque dur.
La méthode CreateItemFromTemplate permet de créer un objet Outloook afin de manipuler ce type de fichier par VBA.
Vous pouvez ensuite piloter l'objet comme tout autre message qui serait stocké dans la messagerie.

Vba
Sélectionnez

Dim OutApp As Outlook.Application
Dim Message As Outlook.MailItem
Dim Cible As String
 
Cible = "C:\dossier\nom du message.msg"
 
Set OutApp = New Outlook.Application
Set Message = OutApp.CreateItemFromTemplate(Cible)
'Renvoie le nom de l'expéditeur et le contenu du message
MsgBox Message.SenderEmailAddress & vbCrLf & Message.Body
 
OutApp.Quit
Set OutApp = Nothing
Créé le 22 mars 2009  par SilkyRoad

Cet exemple (testé avec Office 2007) extrait la liste des contacts Outlook et toutes leurs propriétés.

Nécessite d'activer la référence "Microsoft Outlook xx.x Object Library".
Dans l'éditeur de macros:
Menu Outils
Références

Vba
Sélectionnez

Sub ExtraireContactsOutlook()
    'Nécessite d'activer la référence "Microsoft Outlook xx.x Object Library"
 
    '
    'Créé avec Office 2007
    '
 
    Dim olApp As Outlook.Application
    Dim dossierContacts As Outlook.MAPIFolder
    Dim Contact As Outlook.ContactItem
    Dim i As Integer, j As Integer
 
    Set olApp = New Outlook.Application
    Set dossierContacts = olApp.GetNamespace("MAPI").GetDefaultFolder(olFolderContacts)
 
    'Verifie si le dossier des contacts contient des éléments
    If dossierContacts.Items.Count = 0 Then Exit Sub
 
    'Création d'un entête dans la 1ere ligne
    j = 1
    For i = 0 To dossierContacts.Items(1).ItemProperties.Count - 1
        Cells(j, i + 1) = dossierContacts.Items(1).ItemProperties.Item(i).Name
    Next i
 
    On Error Resume Next
 
    'Boucle sur les éléments pour récupérer les infos
    For Each Contact In dossierContacts.Items
        j = j + 1
        For i = 0 To Contact.ItemProperties.Count - 1
            Cells(j, i + 1) = Contact.ItemProperties.Item(i).Value
        Next i
    Next Contact
 
    Columns.AutoFit
    MsgBox "Opération terminée."
End Sub




Pour récupérer quelques informations spécifiques, utilisez la procédure suivante.
(Exemple: extraire les numéros de téléphone)

Vba
Sélectionnez

Sub numeroTelephone_contactsOutlook()
    Dim olApp As Outlook.Application
    Dim Cible As Outlook.ContactItem
    Dim dossierContacts As Outlook.MAPIFolder
 
    Set olApp = New Outlook.Application
    Set dossierContacts = olApp.GetNamespace("MAPI").GetDefaultFolder(olFolderContacts)
 
    For Each Cible In dossierContacts.Items
        Debug.Print Cible.HomeTelephoneNumber & vbTab & Cible.LastNameAndFirstName
    Next
End Sub
Créé le 2 octobre 2007  par SilkyRoad

Cet exemple recherche un contact dont l'adresse mail est saisie dans la cellule A1.
Si l'élément est trouvé, la procédure visualise la fiche complète.

Vba
Sélectionnez

    Dim olApp As Outlook.Application
    Dim dossierContacts As Outlook.MAPIFolder
    Dim Contact As Outlook.ContactItem
 
    Set olApp = New Outlook.Application
    Set dossierContacts = olApp.GetNamespace("MAPI"). _
        GetDefaultFolder(olFolderContacts)
 
    'Recherche le contact dont le nom est saisi dans la cellule A1
    Set Contact = dossierContacts.Items.Find _
        ("[Email1Address] = '" & Range("A1") & "'")
    If Not Contact Is Nothing Then
        Contact.Display
        Else
        MsgBox "Non trouvé."
    End If
Créé le 5 décembre 2007  par SilkyRoad
Vba
Sélectionnez

Sub ajouterContactOutlook()
    'Nécessite d'activer la référence
        'Microsoft Outlook xx.x Object Library
    Dim objOutlook As Outlook.Application
    Dim objContact As ContactItem
 
    'Crée l'instance Outlook    
    Set objOutlook = New Outlook.Application
    'Crée un élément pour les contacts
    Set objContact = objOutlook.CreateItem(olContactItem)
 
    'Définit les informations du nouveau contact
    With objContact
        .Email1Address = "silkyroad@redaction-developpez.com "
        .FirstName = "michel"
        .LastName = "dvp"
        .HomeTelephoneNumber = "99 99 99 99 99"
        .HomeAddressCity = "Xlcity"
        'Sauvegarde le contact
        .Save
    End With
End Sub
Créé le 19 février 2009  par SilkyRoad
Vba
Sélectionnez

Sub NouveauRDV_Calendrier()
'Nécessite d'activer la référence "Microsoft Outlook xx.x Object Library"
Dim OkApp As New Outlook.Application
Dim Rdv As Outlook.AppointmentItem
 
Set Rdv = OkApp.CreateItem(olAppointmentItem)
 
With Rdv
    .MeetingStatus = olMeeting
    .Subject = "le site DVP"
    .Body = "...description ...."
    .Location = "sur le forum Office"
    .Start = #10/20/2007 9:30:00 PM#     ' Attention : format mois/jours/année
    .Duration = 30 'minutes
    .Categories = "Amis"
    .Save
End With
 
Set OkApp = Nothing
End Sub
Créé le 5 décembre 2007  par SilkyRoad
Vba
Sélectionnez

'Nécessite d'activer la référence Microsoft Outlook xx.x Object Library
Dim myOlApp As Outlook.Application
Dim myItem As Outlook.TaskItem
'
Set myOlApp = New Outlook.Application
Set myItem = myOlApp.CreateItem(olTaskItem)
With myItem
    .Status = olTaskInProgress
    .Importance = olImportanceHigh
    .DueDate = DateValue("10/23/07")
    .Body = "Rendez vous sur le forum"
    .TotalWork = 40
    .ActualWork = 20
    .Subject = "le titre"
    .Assign
    ' le nom doit exister dans le dossier d'adresses
    .Recipients.Add ("leNom lePrenom")
    .Save
    .Send
End With
Créé le 5 décembre 2007  par SilkyRoad
  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2009 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.