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 :

[VBA Outlook] Déplacer mail + créer raccourci de ce mail dans une demande de réunion


Sujet :

VBA Outlook

  1. #1
    Membre du Club Avatar de Dailyplanet
    Inscrit en
    Mai 2008
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 92
    Points : 40
    Points
    40
    Par défaut [VBA Outlook] Déplacer mail + créer raccourci de ce mail dans une demande de réunion
    Bonjour,

    je viens d'implémenter une macro Outlook 2003 (grâce à votre aide ) pour créer une demande de réunion à l'expéditeur d'un mail.

    Maintenant j'aimerai déplacer le mail dans un répertoire défini + ajouter un raccourci de ce mail dans la demande de réunion.
    Avez-vous une idée du code car je suis débutant dans ce domaine.
    Merci de votre aide

    Dailyplanet

  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
    Salut,

    Pour désigner un lien vers un mail il faut mettre :

    outlook:0000000068A2FAB0659D2849BFDE...0000A862FF0000

    où ce qu'il y a après les : = entryID du mail.

    bien sûr il faut le coder en HTML
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <DIV><FONT face=Tahoma color=#000080 size=2><A 
    href="outlook:0000000068A2FAB0659D2849BFDEE4FF9B6CC3070700907935FE1FA1D411A97B00A0C9DD65A40000006BF90B0000917935FE1FA1D411A97B00A0C9DD65A4000000A862FF0000">outlook:0000000068A2FAB0659D2849BFDEE4FF9B6CC3070700907935FE1FA1D411A97B00A0C9DD65A40000006BF90B0000917935FE1FA1D411A97B00A0C9DD65A4000000A862FF0000</A></FONT></DIV>
    et l'insérer dans le htmlbody

    pour cela 2 méthodes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ITEM.htmlbody=monlien + ITEM.htmlbody
    Ou + propre utiliser la fonction "replace" sur la balise "<BODY"
    exemple (qui ne fonctionne pas si cette BALISE ne se ferme pas (>) juste après BODY comme dans l'ex ci-dessous
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <body lang=FR link=blue vlink=purple style='tab-interval:35.4pt'>
    il faut alors chercher le début et la fin de la balise...)

    Bref cela donne cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ITEM.htmlbody=replace(ITEM.htmlbody,"<BODY>" , "<BODY>"+monlien)

  3. #3
    Membre du Club Avatar de Dailyplanet
    Inscrit en
    Mai 2008
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 92
    Points : 40
    Points
    40
    Par défaut
    Salut Oliv-

    Oulala...j'ai pas tout compris . Je comprends vite...mais il faut m'expliquer longtemps
    En fait, ce qui ce passe: quand je reçois un mail, je clique sur ma macro pour ouvrir une demande de réunion (ça c'est fait).
    Maintenant j'aimerai déposer un raccourci de ce maildans la demande de réunion.
    Si ta réponse fait cela, peux-tu m'expliquer différemment car je suis novice

    Dailyplanet

  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
    Salut,

    OK OK Je me suis laissé emporté dans les explications...

    Donc si ton mail d'origine = objMail et ta réunion =objReunion.
    et que ton message est en texte brut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    objReunion.body=objReunion.body+vbcr+"outlook:"+objMail.entryid
    Est ce que cela marche ?

  5. #5
    Membre du Club Avatar de Dailyplanet
    Inscrit en
    Mai 2008
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 92
    Points : 40
    Points
    40
    Par défaut
    J'ai essayé de coller ce code dans les Instances des Objets mais cela ne fonctionne pas: Erreur d'exécution '91'

    A quel endroit dois-je le mettre ?

    Dailyplanet

  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
    Si ton code est celui-ci :
    http://www.developpez.net/forums/sho...03&postcount=7

    juste au dessus de

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
       .Display
        End With
     
        'Vide des instances

  7. #7
    Membre du Club Avatar de Dailyplanet
    Inscrit en
    Mai 2008
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 92
    Points : 40
    Points
    40
    Par défaut
    Je reçois l'erreur:
    Erreur d'exécution '91'
    Variable objet ou variable de block With non définie

    J'aimerai mettre mon code dans ce message. Mais comment le coller pour l'avoir avec les ascenceurs ?

    Dailyplanet

  8. #8
    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
    Il faut utiliser l'icone # lorsque tu réponds.

  9. #9
    Membre du Club Avatar de Dailyplanet
    Inscrit en
    Mai 2008
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 92
    Points : 40
    Points
    40
    Par défaut
    Donc, Je reçois l'erreur:
    Erreur d'exécution '91'
    Variable objet ou variable de block With non définie

    et voici le code que j'ai:
    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
    47
    48
    49
    Sub CreationReunion()
    '---------------------------------------------------------------------------------------
    ' Procédure : CreationReunion
    ' Auteur    : Dolphy35 - http://dolphy35.developpez.com/
    ' Date      : 16/05/2008
    ' Détail    : Création d'une nouvelle entrée du calendrier
    '---------------------------------------------------------------------------------------
    '
    'Déclaration des objets
     
        Dim objOutlook As Outlook.Application
        Dim objReunion As Outlook.AppointmentItem
        Dim objExplorer As Outlook.Explorer
        Dim objSelection As Outlook.Selection
        Dim objMail As Object
        Dim strMail As String
        Dim strSujet As String
     
        'Instance des Objets
        Set objOutlook = Outlook.Application    'Instance de l'application
        Set objExplorer = objOutlook.ActiveExplorer
        Set objSelection = objExplorer.Selection
        Set objReunion = objOutlook.CreateItem(olAppointmentItem)  'Instance de la nouvelle entrée du calendrier
     
        'Récupère les infos du mail reçu
        For Each objMail In objSelection
            With objMail
                strMail = .SenderEmailAddress
                strSujet = .Subject
            End With
        Next
     
        'définition de la réunion
        With objReunion
            .MeetingStatus = olMeeting
            .Subject = strSujet
            .Location = "Mon Bureau"
            .Recipients.Add (strMail)
            .Display
            .Body = "PREMIERE LIGNE - TEXTE" & vbCrLf & "DEUXIEME LIGNE - TEXTE"
        End With
     
        'Vide des instances
        Set objOutlook = Nothing
        Set objReunion = Nothing
        Set objExplorer = Nothing
        Set objSelection = Nothing
     
    End Sub
    Dailyplanet

  10. #10
    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
    Citation Envoyé par Dailyplanet Voir le message
    et voici le code que j'ai:
    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
    47
    48
    49
    50
    Sub CreationReunion()
    '---------------------------------------------------------------------------------------
    ' Procédure : CreationReunion
    ' Auteur    : Dolphy35 - http://dolphy35.developpez.com/
    ' Date      : 16/05/2008
    ' Détail    : Création d'une nouvelle entrée du calendrier
    '---------------------------------------------------------------------------------------
    '
    'Déclaration des objets
     
        Dim objOutlook As Outlook.Application
        Dim objReunion As Outlook.AppointmentItem
        Dim objExplorer As Outlook.Explorer
        Dim objSelection As Outlook.Selection
        Dim objMail As Object
        Dim strMail As String
        Dim strSujet As String
     
        'Instance des Objets
        Set objOutlook = Outlook.Application    'Instance de l'application
        Set objExplorer = objOutlook.ActiveExplorer
        Set objSelection = objExplorer.Selection
        Set objReunion = objOutlook.CreateItem(olAppointmentItem)  'Instance de la nouvelle entrée du calendrier
     
        'Récupère les infos du mail reçu
        For Each objMail In objSelection
            With objMail
                strMail = .SenderEmailAddress
                strSujet = .Subject
            End With
     
     
        'définition de la réunion
        With objReunion
            .MeetingStatus = olMeeting
            .Subject = strSujet
            .Location = "Mon Bureau"
            .Recipients.add (strMail)
            .Body = "PREMIERE LIGNE - TEXTE" & vbCrLf & "DEUXIEME LIGNE - TEXTE"
    .Body = objReunion.Body & vbCr & "outlook:" & objMail.EntryID
            .Display
                End With
        Next
        'Vide des instances
        Set objOutlook = Nothing
        Set objReunion = Nothing
        Set objExplorer = Nothing
        Set objSelection = Nothing
     
    End Sub
    Dailyplanet
    Est ce que ce code fonctionne ? j'ai pas testé

  11. #11
    Membre du Club Avatar de Dailyplanet
    Inscrit en
    Mai 2008
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 92
    Points : 40
    Points
    40
    Par défaut
    Non, j'ai le message d'erreur suivant:

    Erreur d'exécution '91'
    Variable objet ou variable de block With non définie

    Dailyplanet

  12. #12
    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
    Regarde le code dans mon précédent POST je l'ai modifié chez moi cela fonctionne.

  13. #13
    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
    Par contre il manque quand même quelque chose d'important dans le code de dolphy35 pour une réunion c'est la date et la durée !!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    objReunion.Start = #8/30/2007 1:00:00 PM#
    objReunion.Duration = 15

  14. #14
    Membre du Club Avatar de Dailyplanet
    Inscrit en
    Mai 2008
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 92
    Points : 40
    Points
    40
    Par défaut
    Pour la date et l'heure: ce n'est pas nécessaire car il prend la date et l'heure actuelle.

    Pour le lien: GENIAL ça fonctionne

    Encore plus fort: Peut-on modifier le lien qui apparaît dans la demande de réunion par une icône (genre enveloppe) avec le texte de l'objet du mail.

    Dailyplanet

  15. #15
    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
    Je sais pas mais tu peux mettre le mail en PIECE JOINTE

  16. #16
    Membre du Club Avatar de Dailyplanet
    Inscrit en
    Mai 2008
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 92
    Points : 40
    Points
    40
    Par défaut
    Oui, j'aimerai que le mail soit en pièce jointe dans ma demande de réunion.

    Avec ton code, ça le fait mais ajoutant un lien long de 20cm et pas très parlant pour celui qui recevra la demande de réunion.

    Peu-t-on remplacer ce lien par une icône ?

    Dailyplanet

  17. #17
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Attachments.add objMail
    avant . display

  18. #18
    Membre du Club Avatar de Dailyplanet
    Inscrit en
    Mai 2008
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 92
    Points : 40
    Points
    40
    Par défaut
    Super ça fonctionne, mais le raccourci s'intercale entre la PREMIERE LIGNE - TEXTE et la DEUXIEME LIGNE - TEXTE.

    Y a-t-il moyen de dire que le mail en pièce jointe se positionne en dessous du texte ou en dessus du texte.

    Après ce sera parfait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    With objReunion
            .MeetingStatus = olMeeting
            .Subject = strSujet
            .Location = "Mon Bureau"
            .Recipients.Add (strMail)
            .Body = "PREMIERE LIGNE - TEXTE" & vbCrLf & "DEUXIEME LIGNE - TEXTE"
            .Attachments.Add objMail
            .Display
                End With
    Dailyplanet

  19. #19
    Membre du Club Avatar de Dailyplanet
    Inscrit en
    Mai 2008
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 92
    Points : 40
    Points
    40
    Par défaut
    C'est tout bon, j'ai rajouté ça: + Chr(13) + "" + Chr(13) + "" à la fin de ma ligne .Body et le raccourci du mail s'est placé après le texte.

    Merci beaucoup pour ton aide Oliv'

    Dailyplanet

  20. #20
    Membre du Club Avatar de Dailyplanet
    Inscrit en
    Mai 2008
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 92
    Points : 40
    Points
    40
    Par défaut
    Heuuu j'aivais oublié une chose.

    1) Comment déplacer le mail venant de l'expéditeur dans un répertoire nommé "Test" en cliquant sur ma macro "CreationReunion".
    2) Dans le corps de la demande de réunion, je dois mettre uniquement un raccourci du mail (enveloppe + texte de l'objet du mail) et non le contenu du mail en entier.

    Merci de votre soutient

    Dailyplanet

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 0
    Dernier message: 30/10/2010, 11h12
  2. Réponses: 2
    Dernier message: 10/06/2008, 13h24
  3. Réponses: 20
    Dernier message: 21/05/2008, 13h42
  4. Réponses: 1
    Dernier message: 19/02/2007, 19h18
  5. [VBA-E] Comment copier des dates du contrôle calendar dans une boite de texte
    Par jeanpierreco dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 07/02/2007, 07h18

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