IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Outlook Discussion :

envoi automatique calendrier ics par mail


Sujet :

VBA Outlook

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 3
    Points : 3
    Points
    3
    Par défaut envoi automatique calendrier ics par mail
    Bonjour,

    J'ai cherché sur le web sans trouver de réponse. Mon besoin est le suivant :
    - déclencher à heure fixe (ou sur réception d'un nouveau rendez-vous dans mon calendrier)
    - envoi par mail du calendrier au format ics avec les détails sans les pièces jointes à une adresse mail fixe.
    - envoyer le calendrier sur les 3 prochaines semaines

    Cela revient à faire "envoyer le calendrier par courrier électronique" en supprimant le contenu et en conservant uniquement le .ics...mais automatiquement !

    Je vous remercie d'avance pour votre aide, je n'arrive pas à faire du VBA dans outllok

  2. #2
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    Bonjour,
    As-tu essayé l'exemple de cette conversation ?

    Pour l'envoi à une date/heure précise, il faut utiliser le planificateur de tâches de WINDOWS et un VBS contenant un code comme celui de l'exemple.

    ou les événements liées aux rappels des tâches dans OUTLOOK voir ici

  3. #3
    Candidat au Club
    Femme Profil pro
    Consultant ERP
    Inscrit en
    Juin 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Consultant ERP
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2014
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    J'ai cherché un peu sur le forum et sur google et je n'ai pas trouvé ce que je cherche.
    En fait si, ce poste est plein d'idée !!

    Je bosse en entreprise sur outlook 2007 et nous n'avons pas la possibilité de synchroniser le calendrier sur un téléphone perso.
    Ce que je veux faire, c'est extraire tous les jours en cliquant sur un bouton mon calendrier sur 3 semaines au format ics et l'envoyer en pièce jointe à ma boite perso, ce qui me permet d'intégrer ensuite celà dans l'appli de mon smartphone.

    La macro pour extraire le calendrier au format ICS marche très bien.

    Par contre je n'arrive pas à trouver comment
    1- "ouvrir un mail, ajouter le calendrier extrait, envoyer l'email" dans la suite de la procédure.
    2- me air eun rappel chaque jour dans outlook task et n'avoir qu'à cliquer sur un bouton pour le faire


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    Sub ExportCalendrier_ics()
    '---------------------------------------------------------------------------------------
    ' Procédure : ExportCalendrier_ics
    ' Auteur    : Dolphy35 - http://dolphy35.developpez.com/
    ' Date      : 08/04/2008
    ' Détail    : Exporte le calendrier par défaut dans un fichier ics
    '---------------------------------------------------------------------------------------
    '***************************************
    '* NE FONCTIONNE QUE SOUS OUTLOOK 2007 *
    '***************************************
     
        'Déclaration des objets
        Dim nsMAPI As NameSpace
        Dim fldDossier As Folder
        Dim cldExport As CalendarSharing
     
        'Instance des objets
        Set nsMAPI = Application.GetNamespace("MAPI")
        Set fldDossier = nsMAPI.GetDefaultFolder(olFolderCalendar)
     
        'Instancie le dossier Calendrier pour l'export
        Set cldExport = fldDossier.GetCalendarExporter
     
        'instance de l'objet Calendrier (dossier)
        With cldExport
            'information de disponibilité
            .CalendarDetail = olFullDetails
            'N'exporte que les éléments situés dans les horaires de travail
            .RestrictToWorkingHours = False
            'Exclu les pièces jointe
            .IncludeAttachments = True
            'Ajoute les éléments privés
            .IncludePrivateDetails = True
            'Sauvegarde le fichier au chemin définit
            .SaveAsICal "C:\Users\J0230953\Downloads\Mon Calendrier.ics"
        End With
     
        'vide les instances
        Set cldExport = Nothing
        Set fldDossier = Nothing
        Set nsMAPI = Nothing
     
    End Sub

  4. #4
    Expert éminent
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 087
    Points : 7 168
    Points
    7 168
    Billets dans le blog
    20
    Par défaut
    Bonjour,

    Voici la base pour envoyer un Email

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    Private Sub ExempleNewMail()
        Dim appOutlook As Outlook.Application
        Set appOutlook = Outlook.Application
        Dim Message As Outlook.MailItem
        Dim objRecipient As Outlook.Recipient
     
        Set Message = appOutlook.CreateItem(olMailItem)
        With Message
            .Subject = "Mon Objet"
     
            'Soit on ajoute un Corps en TEXTE BRUT
            .BodyFormat = olFormatPlain
            .Body = "Voici le coprs du Mail" & vbCr & " A la ligne"
     
            'Soit on ajoute un Corps en HTML
            .BodyFormat = olFormatHTML
            .HTMLBody = "<html><body> <font face=""arial""><p>Bonjour,</p><p>Ceci est un exemple de Message HTML</p><p>Il faut utiliser des balises HTML pour formater le texte.</p><p>En <strong>gras</strong>, <em>Italic</em>, <u>Souligné</u></p><BR><p>Je suis passé à la ligne</p><p>Voici un lien hypertexte.</p>" & _
                        "<a href=""mailto:Joe.User@MyCompany.com"">Joe User</a></font></body></html>"
     
            'Ajout d'un destinataire principal
            Set objRecipient = .Recipients.add("toto@toto.com")
            objRecipient.Type = olTo    'olBCC, olCC, olOriginator ou olTo.
            objRecipient.Resolve
     
            'Ajout d'un destinataire en copie
            Set objRecipient = .Recipients.add("titi@toto.com")
            objRecipient.Type = olCC    'olBCC, olCC, olOriginator ou olTo.
            objRecipient.Resolve
            '
            'Ajout d 'une PJ
            Dim MaPJ
            MaPJ = "C:\Users\J0230953\Downloads\Mon Calendrier.ics"
            'on verifie d'abord qu'elle existe.
            If Dir(MaPJ) <> "" Then
                .Attachments.add MaPJ
            End If
     
            'ajout ar lecture
            .ReadReceiptRequested = True
     
            'Soit je l'affiche
            .Display
            'Soit je l'envoi
            '.Send
        End With
    End Sub
    Ensuite tu peux aller plus loin et intercepter la tâche pour envoyer directement l'Email.
    dans thisOutlookSession
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Application_Reminder(ByVal Item As Object)
    if Item.subject = "#GOICS" then
        ExportCalendrier_ics
        ExempleNewMail
    End if
    End Sub

  5. #5
    Candidat au Club
    Femme Profil pro
    Consultant ERP
    Inscrit en
    Juin 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Consultant ERP
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2014
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    Génial !!
    ça marche parfaitement !

Discussions similaires

  1. envoi automatique de fichier par mail
    Par ellewided dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 04/08/2009, 18h27
  2. Envoi de fichier excel par mail automatique
    Par julio02200 dans le forum Excel
    Réponses: 3
    Dernier message: 06/11/2007, 14h31
  3. envoi automatique d'un e-mail
    Par salmer dans le forum ASP
    Réponses: 6
    Dernier message: 10/05/2006, 23h36
  4. [Mail] Envoie de caractère spéciaux par mail() ?
    Par Oberown dans le forum Langage
    Réponses: 2
    Dernier message: 12/09/2005, 16h13
  5. Réponses: 1
    Dernier message: 15/07/2005, 11h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo