Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Outlook > VBA Outlook

Réponse
 
Outils de la discussion
Vieux 26/05/2008, 16h05   #1 (permalink)
Nouveau membre du Club
 
Avatar de Dailyplanet
 
Date d'inscription: mai 2008
Localisation: Suisse, Lausanne
Messages: 63
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

Dernière modification par Dailyplanet ; 26/05/2008 à 16h14 Motif: Erreur de frappe
Dailyplanet est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 26/05/2008, 17h09   #2 (permalink)
Membre éprouvé
 
Avatar de Oliv-
 
Date d'inscription: mars 2006
Localisation: Tourcoing
Âge: 37
Messages: 493
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 :
<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
Vieux 27/05/2008, 10h59   #3 (permalink)
Nouveau membre du Club
 
Avatar de Dailyplanet
 
Date d'inscription: mai 2008
Localisation: Suisse, Lausanne
Messages: 63
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
Dailyplanet est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 27/05/2008, 11h18   #4 (permalink)
Membre éprouvé
 
Avatar de Oliv-
 
Date d'inscription: mars 2006
Localisation: Tourcoing
Âge: 37
Messages: 493
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 :
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
Vieux 27/05/2008, 13h41   #5 (permalink)
Nouveau membre du Club
 
Avatar de Dailyplanet
 
Date d'inscription: mai 2008
Localisation: Suisse, Lausanne
Messages: 63
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
Dailyplanet est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 27/05/2008, 14h05   #6 (permalink)
Membre éprouvé
 
Avatar de Oliv-
 
Date d'inscription: mars 2006
Localisation: Tourcoing
Âge: 37
Messages: 493
Par défaut

Si ton code est celui-ci :
http://www.developpez.net/forums/sho...03&postcount=7

juste au dessus de

Code :
   .Display
    End With
    
    'Vide des instances
 
Oliv- est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 27/05/2008, 14h47   #7 (permalink)
Nouveau membre du Club
 
Avatar de Dailyplanet
 
Date d'inscription: mai 2008
Localisation: Suisse, Lausanne
Messages: 63
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
Dailyplanet est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 27/05/2008, 17h54   #8 (permalink)
Membre éprouvé
 
Avatar de Oliv-
 
Date d'inscription: mars 2006
Localisation: Tourcoing
Âge: 37
Messages: 493
Par défaut

Il faut utiliser l'icone # lorsque tu réponds.
Oliv- est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 28/05/2008, 08h01   #9 (permalink)
Nouveau membre du Club
 
Avatar de Dailyplanet
 
Date d'inscription: mai 2008
Localisation: Suisse, Lausanne
Messages: 63
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 :
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
Vieux 28/05/2008, 09h46   #10 (permalink)
Membre éprouvé
 
Avatar de Oliv-
 
Date d'inscription: mars 2006
Localisation: Tourcoing
Âge: 37
Messages: 493
Par défaut

Citation:
Envoyé par Dailyplanet Voir le message
et voici le code que j'ai:
Code :
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é

Dernière modification par Oliv- ; 28/05/2008 à 10h50
Oliv- est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 28/05/2008, 10h34   #11 (permalink)
Nouveau membre du Club
 
Avatar de Dailyplanet
 
Date d'inscription: mai 2008
Localisation: Suisse, Lausanne
Messages: 63
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
Dailyplanet est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 28/05/2008, 10h51   #12 (permalink)
Membre éprouvé
 
Avatar de Oliv-
 
Date d'inscription: mars 2006
Localisation: Tourcoing
Âge: 37
Messages: 493
Par défaut

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
Vieux 28/05/2008, 10h57   #13 (permalink)
Membre éprouvé
 
Avatar de Oliv-
 
Date d'inscription: mars 2006
Localisation: Tourcoing
Âge: 37
Messages: 493
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 :
objReunion.Start = #8/30/2007 1:00:00 PM#
objReunion.Duration = 15
Oliv- est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 28/05/2008, 11h29   #14 (permalink)
Nouveau membre du Club
 
Avatar de Dailyplanet
 
Date d'inscription: mai 2008
Localisation: Suisse, Lausanne
Messages: 63
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
Dailyplanet est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 28/05/2008, 11h37   #15 (permalink)
Membre éprouvé
 
Avatar de Oliv-
 
Date d'inscription: mars 2006
Localisation: Tourcoing
Âge: 37
Messages: 493
Par défaut

Je sais pas mais tu peux mettre le mail en PIECE JOINTE
Oliv- est déconnecté   Envoyer un message privé Réponse avec citation
NEWS MS-OFFICEFAQs OFFICETUTORIELS OFFICELIVRES OFFICESOURCES VBAACCESS

Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Outlook > VBA Outlook



Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide