Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Creer un rendez vous par VBA lors de l'envoi d'un email

20 réponses
Avatar
Thierry
Bonjour,

J'essaye desesperement de creer automatiquement un rendez vous 2 semaines
apres l'envoi d'un email. enfin seulement lorsque j'ai une pice jointe
commencant par "OP".

Comment peux t'on y arriver. je n'arrive pas consulter le noms des pieces
jointes de l'email en cours.

Merci bcp!

Thierry

10 réponses

1 2
Avatar
Geo

Bonjour,

J'essaye desesperement de creer automatiquement un rendez vous 2 semaines
apres l'envoi d'un email. enfin seulement lorsque j'ai une pice jointe
commencant par "OP".

Comment peux t'on y arriver. je n'arrive pas consulter le noms des pieces
jointes de l'email en cours.

Merci bcp!


Faire un for each sur les attachements du courriel, le nom de fichier
est la propriété finename.
Qqch comme :

for each PJ in MonCourriel.attachements
if left (pj.filename, 2) = "OP" then ...
next

--
A+

Avatar
Thierry
Merci,

J'ai une petite question: MonCourriel est un objet déjà existant dans VBA?

Il faut donc que je mette ce code dans l'évenement send?

Merci bcp en tout cas



Bonjour,

J'essaye desesperement de creer automatiquement un rendez vous 2 semaines
apres l'envoi d'un email. enfin seulement lorsque j'ai une pice jointe
commencant par "OP".

Comment peux t'on y arriver. je n'arrive pas consulter le noms des pieces
jointes de l'email en cours.

Merci bcp!


Faire un for each sur les attachements du courriel, le nom de fichier
est la propriété finename.
Qqch comme :

for each PJ in MonCourriel.attachements
if left (pj.filename, 2) = "OP" then ...
next

--
A+






Avatar
Geo

J'ai une petite question: MonCourriel est un objet déjà existant dans VBA?


Non non, un objet en français ça ferait désordre en Amérique.
C'est un objet de type MailItem :
Dim MonCourriel As MailItem

Il faut donc que je mette ce code dans l'évenement send?


Send n'est pas un événement c'est une méthode, si vous envoyez vos
courriels en VBA, vous pouvez le faire à cette occasion, mais amha il
doit y avoir plus simple.
Si vous envoyez vos courriels normalement, à la main, utilisez une
macro Application_ItemSend dans ThisOutlOokSession.

--
A+

Avatar
Oliv'
*Geo que je salue a écrit *:

J'ai une petite question: MonCourriel est un objet déjà existant
dans VBA?


Non non, un objet en français ça ferait désordre en Amérique.
C'est un objet de type MailItem :
Dim MonCourriel As MailItem

Il faut donc que je mette ce code dans l'évenement send?


Send n'est pas un événement c'est une méthode, si vous envoyez vos
courriels en VBA, vous pouvez le faire à cette occasion, mais amha il
doit y avoir plus simple.
Si vous envoyez vos courriels normalement, à la main, utilisez une
macro Application_ItemSend dans ThisOutlOokSession.


Si tu utilises l'événement Application_ItemSend en principe le mail en cours
d'envoi sera défini par la variable objet "item"

donc on aura du genre:

for each PJ in item.attachements
if left (pj.filename, 2) = "OP" then
'mon code ...
exit for
end if
next

C'est la fonction assurer un suivi que tu veux activer ?


--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Have a nice day
Oliv'
Outlook : http://faq.outlook.free.fr/
les macros Outlook : http://faq.outlook.free.fr/articles.php?cat_id
les archives : http://groups.google.com/group/microsoft.public.fr.outlook
Dernière chance http://www.outlookcode.com/
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


Avatar
Oliv'

Si tu utilises l'événement Application_ItemSend en principe le mail
en cours d'envoi sera défini par la variable objet "item"

donc on aura du genre:

for each PJ in item.attachements
if left (pj.filename, 2) = "OP" then
'mon code ...
exit for
end if
next

C'est la fonction assurer un suivi que tu veux activer ?



Si c'est oui :


item.FlagDueBy = #12/10/2007#
item.FlagStatus = olFlagMarked
item.FlagRequest = "Assurer un suivi"



--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Have a nice day
Oliv'
Outlook : http://faq.outlook.free.fr/
les macros Outlook : http://faq.outlook.free.fr/articles.php?cat_id
les archives : http://groups.google.com/group/microsoft.public.fr.outlook
Dernière chance http://www.outlookcode.com/
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Avatar
Thierry
Salut les gars,

Désolé je rentre de vacances juste...

Merci pour vos messages.

J'ai mis le code suivant

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)

Dim PJ As Attachment

For Each PJ In Item.attachements
If Left(PJ.FileName, 2) = "OD" Then
MsgBox "OK"
Exit For
End If
Next


End Sub

ça marche pas, dans un premier temps je met une MsgBox "OK" pour vérifier le
fonctionnement mais en effet je veux faire un suivi.

CAD, quand j'envoie une offre à un client (qui commence par OD toujours) je
veux qu'il me crée un rendez vous 1 semaine plus tard avec l'offre attaché.

Merci encore!!!




Si tu utilises l'événement Application_ItemSend en principe le mail
en cours d'envoi sera défini par la variable objet "item"

donc on aura du genre:

for each PJ in item.attachements
if left (pj.filename, 2) = "OP" then
'mon code ...
exit for
end if
next

C'est la fonction assurer un suivi que tu veux activer ?



Si c'est oui :


item.FlagDueBy = #12/10/2007#
item.FlagStatus = olFlagMarked
item.FlagRequest = "Assurer un suivi"



--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Have a nice day
Oliv'
Outlook : http://faq.outlook.free.fr/
les macros Outlook : http://faq.outlook.free.fr/articles.php?cat_id
les archives : http://groups.google.com/group/microsoft.public.fr.outlook
Dernière chance http://www.outlookcode.com/
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~






Avatar
Geo

For Each PJ In Item.attachements


Marche bien chez moi avec Attachments.

--
A+

Avatar
Thierry
Avec ce code?

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)

Dim PJ As Attachments

For Each PJ In Item.attachements
If Left(PJ.FileName, 2) = "OD" Then
MsgBox "OK"
Exit For
End If
Next


End Sub

Moi ça ne marche pas...Je comprends pas...



For Each PJ In Item.attachements


Marche bien chez moi avec Attachments.

--
A+






Avatar
Geo

Avec ce code?


Vous l'avez mis au bon endroit ?

Ajoutez un msgbox ou un debug.print pour vous assurer que vous passez
bien par la macro.

--
A+

Avatar
Oliv'
*Thierry que je salue a écrit *:
Avec ce code?


Non il y avait 2 erreurs c'est
Dim PJ As Attachment au lieu de Dim PJ As Attachments
et Attachments au lieu de Attachements comme l'avais fait remarquer GEO.

Avec ce code ca doit le faire :

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)

Dim PJ As Attachment

For Each PJ In Item.Attachments
If Left(PJ.FileName, 2) = "OD" Then
MsgBox "OK"
Item.FlagDueBy = DateAdd("d", 7, Item.CreationTime)
Item.FlagStatus = olFlagMarked
Item.FlagRequest = "Assurer un suivi"
Exit For
End If
Next

End Sub


--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Have a nice day
Oliv'
Outlook : http://faq.outlook.free.fr/
les macros Outlook : http://faq.outlook.free.fr/articles.php?cat_id
les archives : http://groups.google.com/group/microsoft.public.fr.outlook
Dernière chance http://www.outlookcode.com/
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

1 2