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 :

Compléments pour envoi d'un mail via Outlook [OL-2013]


Sujet :

VBA Outlook

  1. #1
    Membre expérimenté Avatar de bernardmichel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2004
    Messages
    1 181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 181
    Points : 1 591
    Points
    1 591
    Par défaut Compléments pour envoi d'un mail via Outlook
    Bonsoir,

    Occupé à créer une application qui va envoyer des mails via Outlook, je sèche lamentablement pour le remplissage de 3 champs Outlook.

    Ci-dessous un printscreen traduisant mon besoin d'information:
    Pièce jointe 182384

    Mon code pour remplir les autres champs est le suivant:
    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
     
        ' Composition et envoi du mail via Outlook
        Set obj = CreateObject("Outlook.application")
        Set objItem = obj.CreateItem(olAppointmentItem)
        With objItem
            .MeetingStatus = olMeeting          ' Type réunion
            .Recipients.Add Me.Email            ' Ajout destinataire
            '.???..... Pour définir le lieu de l'événement
            '.???..... Pour définir la date de début de l'événement
            '.???..... Pour définir la date de fin de l'événement
            .Start = Debut                     ' Début
            .Duration = Duree                  ' Durée
            .Subject = Sujet                    ' Sujet
            .Body = Message                     ' Texte
            .ReminderSet = True                 ' rappel
            .ReminderMinutesBeforeStart = 10    ' rappel x minutes avant
            .BusyStatus = olOutOfOffice         ' absent du bureau
            .Display                            ' affichage pour validation
            .Save
            '.Send
        End With
    Donc, ma demande est: Que faut-il mettre pour remplacer les ???... et obtenir ce qui est défini en vert dans mon code ?

    Un grand merci d'avance :-)
    Nous n'héritons pas la Terre de nos ancêtres, nous l'empruntons à nos enfants, prenons-en soin !
    (proverbe amérindien)

  2. #2
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 004
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 004
    Points : 24 593
    Points
    24 593
    Par défaut
    Bonjour,

    C'est du code Outlook.

    Je transfère.

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  3. #3
    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,
    l'aide de OUTLOOK est là pour cela
    cherche "AppointmentItem, membres de l’objet"

    et tu trouveras (.location .start .end).

    Tu peux aussi utiliser les espions dans VBE ou la fenêtre variable locales

  4. #4
    Membre expérimenté Avatar de bernardmichel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2004
    Messages
    1 181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 181
    Points : 1 591
    Points
    1 591
    Par défaut
    Bonjour et merci pour l'info.

    Ce que j'ai oublié de dire c'est que mon code est sur Access avec lequel j'envoie un mail via Outlook...

    Est-ce que la référence donnée est valable dans ce cas ?

    J'avais déjà essayé .location, mais cela générait un message d'erreur après une longue attente...

    Merci d'avance.
    Nous n'héritons pas la Terre de nos ancêtres, nous l'empruntons à nos enfants, prenons-en soin !
    (proverbe amérindien)

  5. #5
    Membre expérimenté Avatar de bernardmichel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2004
    Messages
    1 181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 181
    Points : 1 591
    Points
    1 591
    Par défaut
    Re...

    Concernant les dates, j'avais simplement oublié d'ajouter la date de la convocation à l'heure de la convocation. C'est corrigé et cela fonctionne.

    Maintenant, ne me reste plus qu'à trouver comment remplacer .location puisque cela ne fonctionne pas.

    Afin de vous donner les plus d'éléments possible, voici le code en entier:

    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 btnMail_Click()
    Dim obj         As Outlook.Application
    Dim objItem     As Object
    Dim frm         As Form
    Dim Sujet       As String
    Dim Message     As String
    Dim DateDebut   As Date
    Dim Debut       As Date
    Dim Duree       As Integer
     
        Set frm = Me!frmConvocation_sf.Form
        Sujet = "Convocation visite médicale"
        Message = frm!Textmail
        DateDebut = frm!DateVisite
        Debut = DateDebut + frm!Heure
        Duree = IIf(frm!Duree = "1H", 60, 30)
     
        ' Teste la saisie des composants du mail
        If Estvide(frm!cboChoix) Or Estvide(frm!cboLieu) Or Estvide(frm!DateVisite) Or Estvide(frm!Duree) Or Estvide(frm!Heure) Then
            MsgBox ("Veuillez renseigner l'intégralité des champs")
            Exit Sub
        End If
     
        ' Composition et envoi du mail via Outlook
        Set obj = CreateObject("Outlook.application")
        Set objItem = obj.CreateItem(olAppointmentItem)
        With objItem
            .MeetingStatus = olMeeting          ' Type réunion
            .Recipients.Add Me.Email            ' Ajout destinataire
            '.Location = frm!cboLieu
            .Start = Debut                      ' Début
            .Duration = Duree                   ' Durée
            .Subject = Sujet                    ' Sujet
            .Body = Message                     ' Texte
            .ReminderSet = True                 ' rappel
            .ReminderMinutesBeforeStart = 10    ' rappel x minutes avant
            .BusyStatus = olOutOfOffice         ' absent du bureau
            .Display                            ' affichage pour validation
            .Save
            '.Send
        End With
        Set objItem = Nothing
        Set obj = Nothing
        Set frm = Nothing
     
    End Sub
    Et en plus, voici le message d'erreur généré en utilisant " .location "

    Pièce jointe 182439
    Nous n'héritons pas la Terre de nos ancêtres, nous l'empruntons à nos enfants, prenons-en soin !
    (proverbe amérindien)

  6. #6
    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
    Cela dépend si tu es en "late binding" complet ou pas c'est à dire as tu dans les REFERENCES de VBE (côtè ACCESS) une référence à "MICROSOFT OUTLOOK 15.0 OBJECT LIBRARY" ?

    si ce n'est pas le cas toutes tes CONSTANTES "OUTLOOK" sont inconnues, tu peux vérifier en mettant "Option Explicit" en haut de tes modules.

  7. #7
    Membre expérimenté Avatar de bernardmichel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2004
    Messages
    1 181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 181
    Points : 1 591
    Points
    1 591
    Par défaut
    Merci Oliv,

    Oui, tous mes codes sont précédés de "Option Explicit".

    Mais, j'ai trouvé :-)

    Il fallait déclarer:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim objItem     As Outlook.AppointmentItem
    en lieu et place de:
    Et cela fonctionne à merveille.

    Merci pour tes pistes, elles m'ont été très utiles :-))

    Bernard.
    Nous n'héritons pas la Terre de nos ancêtres, nous l'empruntons à nos enfants, prenons-en soin !
    (proverbe amérindien)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. envoi auto de mail via outlook, adresse dans un excel + pj
    Par delta07 dans le forum Microsoft Office
    Réponses: 2
    Dernier message: 11/06/2015, 14h36
  2. Erreur lors de l'envoie d'un mail via Outlook
    Par Zoethibault dans le forum VBA Access
    Réponses: 6
    Dernier message: 14/12/2011, 09h30
  3. Réponses: 4
    Dernier message: 02/02/2009, 22h40
  4. Envoi d'un mail via outlook avec l'option de vote
    Par Djohn dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/03/2008, 11h23

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