Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Outlook > VBA Outlook
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/05/2008, 16h05   #1
Candidat au titre de Membre du Club
 
Avatar de Dailyplanet
 
Inscription : mai 2008
Messages : 92
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 92
Points : 12
Points : 12
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
Dailyplanet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2008, 17h09   #2
Membre chevronné
 
Avatar de Oliv-
 
Inscription : mars 2006
Messages : 643
Détails du profil
Informations personnelles :
Âge : 41

Informations forums :
Inscription : mars 2006
Messages : 643
Points : 699
Points : 699
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 :
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 :
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 :
<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 :
ITEM.htmlbody=replace(ITEM.htmlbody,"<BODY>" , "<BODY>"+monlien)
Oliv- est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2008, 10h59   #3
Candidat au titre de Membre du Club
 
Avatar de Dailyplanet
 
Inscription : mai 2008
Messages : 92
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 92
Points : 12
Points : 12
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
Dailyplanet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2008, 11h18   #4
Membre chevronné
 
Avatar de Oliv-
 
Inscription : mars 2006
Messages : 643
Détails du profil
Informations personnelles :
Âge : 41

Informations forums :
Inscription : mars 2006
Messages : 643
Points : 699
Points : 699
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 :
objReunion.body=objReunion.body+vbcr+"outlook:"+objMail.entryid
Est ce que cela marche ?
Oliv- est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2008, 13h41   #5
Candidat au titre de Membre du Club
 
Avatar de Dailyplanet
 
Inscription : mai 2008
Messages : 92
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 92
Points : 12
Points : 12
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
Dailyplanet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2008, 14h05   #6
Membre chevronné
 
Avatar de Oliv-
 
Inscription : mars 2006
Messages : 643
Détails du profil
Informations personnelles :
Âge : 41

Informations forums :
Inscription : mars 2006
Messages : 643
Points : 699
Points : 699
Si ton code est celui-ci :
http://www.developpez.net/forums/sho...03&postcount=7

juste au dessus de

Code :
1
2
3
4
   .Display
    End With
 
    'Vide des instances
Oliv- est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2008, 14h47   #7
Candidat au titre de Membre du Club
 
Avatar de Dailyplanet
 
Inscription : mai 2008
Messages : 92
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 92
Points : 12
Points : 12
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
Dailyplanet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2008, 17h54   #8
Membre chevronné
 
Avatar de Oliv-
 
Inscription : mars 2006
Messages : 643
Détails du profil
Informations personnelles :
Âge : 41

Informations forums :
Inscription : mars 2006
Messages : 643
Points : 699
Points : 699
Il faut utiliser l'icone # lorsque tu réponds.
Oliv- est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/05/2008, 08h01   #9
Candidat au titre de Membre du Club
 
Avatar de Dailyplanet
 
Inscription : mai 2008
Messages : 92
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 92
Points : 12
Points : 12
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 :
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
Dailyplanet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/05/2008, 09h46   #10
Membre chevronné
 
Avatar de Oliv-
 
Inscription : mars 2006
Messages : 643
Détails du profil
Informations personnelles :
Âge : 41

Informations forums :
Inscription : mars 2006
Messages : 643
Points : 699
Points : 699
Citation:
Envoyé par Dailyplanet Voir le message
et voici le code que j'ai:
Code :
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é
Oliv- est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/05/2008, 10h34   #11
Candidat au titre de Membre du Club
 
Avatar de Dailyplanet
 
Inscription : mai 2008
Messages : 92
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 92
Points : 12
Points : 12
Non, j'ai le message d'erreur suivant:

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

Dailyplanet
Dailyplanet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/05/2008, 10h51   #12
Membre chevronné
 
Avatar de Oliv-
 
Inscription : mars 2006
Messages : 643
Détails du profil
Informations personnelles :
Âge : 41

Informations forums :
Inscription : mars 2006
Messages : 643
Points : 699
Points : 699
Regarde le code dans mon précédent POST je l'ai modifié chez moi cela fonctionne.
Oliv- est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/05/2008, 10h57   #13
Membre chevronné
 
Avatar de Oliv-
 
Inscription : mars 2006
Messages : 643
Détails du profil
Informations personnelles :
Âge : 41

Informations forums :
Inscription : mars 2006
Messages : 643
Points : 699
Points : 699
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 :
1
2
objReunion.Start = #8/30/2007 1:00:00 PM#
objReunion.Duration = 15
Oliv- est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/05/2008, 11h29   #14
Candidat au titre de Membre du Club
 
Avatar de Dailyplanet
 
Inscription : mai 2008
Messages : 92
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 92
Points : 12
Points : 12
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
Dailyplanet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/05/2008, 11h37   #15
Membre chevronné
 
Avatar de Oliv-
 
Inscription : mars 2006
Messages : 643
Détails du profil
Informations personnelles :
Âge : 41

Informations forums :
Inscription : mars 2006
Messages : 643
Points : 699
Points : 699
Je sais pas mais tu peux mettre le mail en PIECE JOINTE
Oliv- est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/05/2008, 11h46   #16
Candidat au titre de Membre du Club
 
Avatar de Dailyplanet
 
Inscription : mai 2008
Messages : 92
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 92
Points : 12
Points : 12
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
Dailyplanet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/05/2008, 11h54   #17
Membre chevronné
 
Avatar de Oliv-
 
Inscription : mars 2006
Messages : 643
Détails du profil
Informations personnelles :
Âge : 41

Informations forums :
Inscription : mars 2006
Messages : 643
Points : 699
Points : 699
Code :
.Attachments.add objMail
avant . display
Oliv- est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/05/2008, 13h57   #18
Candidat au titre de Membre du Club
 
Avatar de Dailyplanet
 
Inscription : mai 2008
Messages : 92
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 92
Points : 12
Points : 12
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 :
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
Dailyplanet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/05/2008, 14h06   #19
Candidat au titre de Membre du Club
 
Avatar de Dailyplanet
 
Inscription : mai 2008
Messages : 92
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 92
Points : 12
Points : 12
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
Dailyplanet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/05/2008, 08h15   #20
Candidat au titre de Membre du Club
 
Avatar de Dailyplanet
 
Inscription : mai 2008
Messages : 92
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 92
Points : 12
Points : 12
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
Dailyplanet est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h39.


 
 
 
 
Partenaires

Hébergement Web