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 01/05/2008, 21h22   #1 (permalink)
Responsable Delphi
 
Avatar de Nono40
 
Date d'inscription: mai 2002
Messages: 4 974
Par défaut [Outlook 2003]Déplacer/trier automatiquement les mail sortant

Bonjour,

dans les règles de tri sur les messages sortant il y a seulement 'copier le message' mais pas 'déplacer le message'. Y-a-t'il un moyen simple de faire un déplacement plutôt qu'une copie ?

C'est d'autant plus bizard que pour les messages sortant c'est l'une des promière options
__________________
Delphi :
La F.A.Q. , 877 réponses à vos questions !
264 sources à consulter/télécharger !
Nono40 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 02/05/2008, 19h47   #2 (permalink)
Responsable Outlook
 
Avatar de Dolphy35
 
Date d'inscription: octobre 2004
Localisation: Rennes
Messages: 3 296
Envoyer un message via MSN à Dolphy35 Envoyer un message via Skype™ à Dolphy35
Par défaut

Salut Nono,

C'est vrai que dans les règles tu as 'déplacer une copie vers le dossier spécifié' cela créer une copie du mail qui est placée dans le dossier donc tu te retrouve avec une copie dans éléments envoyés + une copie dans le dossier spécifié.

autre solution serait de créer une macro et ensuite tu créer une règle qui sur un message sortant exécute la macro


Dolphy
__________________
Initiation au VBA d'Outlook
venez défier mabrute
Je ne réponds pas aux questions techniques par MP
Dolphy35 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 03/05/2008, 03h25   #3 (permalink)
Responsable Delphi
 
Avatar de Nono40
 
Date d'inscription: mai 2002
Messages: 4 974
Par défaut

Va falloir que je fasse du VBA alors
Je regarde dés que j'ai le temps.
__________________
Delphi :
La F.A.Q. , 877 réponses à vos questions !
264 sources à consulter/télécharger !
Nono40 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 05/05/2008, 11h17   #4 (permalink)
Membre régulier
 
Date d'inscription: août 2007
Localisation: France, Paris
Messages: 136
Envoyer un message via MSN à Laurent CUENET Envoyer un message via Skype™ à Laurent CUENET
Par défaut

Bonjour,

Dans la version 2007 c'est possible. En 2003 je pense que le vba s'impose.

A bientôt,
Laurent CUENET est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 07/05/2008, 22h40   #5 (permalink)
Responsable Outlook
 
Avatar de Dolphy35
 
Date d'inscription: octobre 2004
Localisation: Rennes
Messages: 3 296
Envoyer un message via MSN à Dolphy35 Envoyer un message via Skype™ à Dolphy35
Par défaut

Salut Nono,

voici un petit code qui s'exécute sur l'envoi d'un mail, par défaut dans un dossier appelé "dolphy_essais", copie le code dans le module ThisOutlookSession :

Code :
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
 
    Dim objNSpace As NameSpace
    Dim fldDestination As MAPIFolder
    If Not Item.Class = olMail Then Exit Sub
    Set objNSpace = Application.GetNamespace("MAPI")
    Set fldDestination = objNSpace.Folders("Dossiers personnels").Folders("Boîte de réception").Folders("dolphy_essais")
    Set Item.SaveSentMessageFolder = fldDestination
 
End Sub
tu peux ouvrir une boîte de dialogue demandant le dossier de destination :
Code :
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
 
    Dim objNSpace As namespace
    Dim fldDestination As MAPIFolder
    Dim items As MailItem
    If Not Item.Class = olMail Then Exit Sub
    Set objNSpace = Application.GetNamespace("MAPI")
    Set fldDestination = objNSpace.PickFolder
    Set Item.SaveSentMessageFolder = fldDestination
 
End Sub
Dolphy
__________________
Initiation au VBA d'Outlook
venez défier mabrute
Je ne réponds pas aux questions techniques par MP
Dolphy35 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 08/05/2008, 17h48   #6 (permalink)
Responsable Delphi
 
Avatar de Nono40
 
Date d'inscription: mai 2002
Messages: 4 974
Par défaut



Ta fonction brutte fonctionne, mais j'ai essayé d'ajouter un tri en fonction de l'adresse émetrice qui ne fonctionne pas :
Code :
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
 
    Dim objNSpace As NameSpace
    Dim fldDestination As MAPIFolder
    If Not Item.Class = olMail Then Exit Sub
    Set objNSpace = Application.GetNamespace("MAPI")
    'Set fldDestination = objNSpace.Folders("Dossiers personnels").Folders("éléments envoyés").Folders("test")
    If InStr(1, Item.SenderEmailAddress, "Nono40@redaction-developpez.com", vbTextCompare) > 0 Then
        Set fldDestination = objNSpace.Folders("Dossiers personnels").Folders("éléments envoyés").Folders("DVP Nono40")
    Else
    If Item.SenderEmailAddress = "Delphi@redaction-developpez.com" Then
        Set fldDestination = objNSpace.Folders("Dossiers personnels").Folders("éléments envoyés").Folders("DVP Delphi")
    Else
        Set fldDestination = objNSpace.Folders("Dossiers personnels").Folders("éléments envoyés").Folders("Test")
    End If
    End If
    Set Item.SaveSentMessageFolder = fldDestination
End Sub
En mise au point, l'espion sur Item dit que Item.SenderEmailAddress ='' et Item.SenderEmailNale = ''

PS : Pour info la macro est exécutée quand on clique sur "Envoyer" et donc avant qu'il soit réellement envoyé par "Envoyer/Recevoir", mais ce n'est pas génant.
__________________
Delphi :
La F.A.Q. , 877 réponses à vos questions !
264 sources à consulter/télécharger !
Nono40 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 08/05/2008, 20h07   #7 (permalink)
Responsable Outlook
 
Avatar de Dolphy35
 
Date d'inscription: octobre 2004
Localisation: Rennes
Messages: 3 296
Envoyer un message via MSN à Dolphy35 Envoyer un message via Skype™ à Dolphy35
Par défaut

Salut,

Le soucis est le fait que le mail n'est pas envoyé donc on n'a pas l'info SenderMailAdress, sous OL2007 une nouvelle méthode permet de connaître le compte expéditeur : SendUsingAccount
de ce qui est de 2003 je n'ai jamais eu à le faire, sinon autre méthode récupérer le EntryID du mail et après avoir envoyé rechercher le mail pour le déplacer vers le dossier adéquat, c'est peut être pas la meilleure solution mais ça peut fonctionner.


Dolphy
__________________
Initiation au VBA d'Outlook
venez défier mabrute
Je ne réponds pas aux questions techniques par MP
Dolphy35 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 09/05/2008, 07h09   #8 (permalink)
Responsable Delphi
 
Avatar de Nono40
 
Date d'inscription: mai 2002
Messages: 4 974
Par défaut

Citation:
sinon autre méthode récupérer le EntryID du mail et après avoir envoyé rechercher le mail pour le déplacer vers le dossier adéquat
Le tout est surtout de savoir QUAND les mails sont envoyés réellement. Dans les évènements de Application y'a quasi rien.

- La copie est faite au moment ou on clique sur 'envoyer' et non pas au moment ou l'envoi est fait. Le mail part donc dans 'Eléments envoyés' alors qu'il n'est... pas envoyé.
- La copie est marquée comme non lue...

Ce qui m'a fait vérfier que les règles ne sont pas exécutées à l'envoi réel mais au placement du mail dans Boite d'envoi. Ca exclu donc direct tout passage par ce point.
J'ai vu aussi en passant que l'on ne pouvait pas appeler une macro via une règle, il fallait en faire une Dll externe

J'ai quand même du mal à piger comment MS à pu oublier que l'on veuille trier les mails qui partent
__________________
Delphi :
La F.A.Q. , 877 réponses à vos questions !
264 sources à consulter/télécharger !

Dernière modification par Dolphy35 ; 09/05/2008 à 16h25
Nono40 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 20/05/2008, 10h13   #9 (permalink)
Membre éprouvé
 
Avatar de Oliv-
 
Date d'inscription: mars 2006
Localisation: Tourcoing
Âge: 37
Messages: 492
Par défaut

Salut,
la méthode
Citation:
récupérer le EntryID du mail et après avoir envoyé rechercher le mail pour le déplacer vers le dossier adéquat
ne fonctionne pas car ce n'est pas le même EntryID (il faut bien sûr enregister le mail pour qu'il crée un EntryID).


L'événement itemSEND se produit quand on clique sur envoyer
ensuite le mail va dans la boite d'envoi puis une copie dans éléments envoyés ou le dossier paramétré dans les options.

Citation:
J'ai vu aussi en passant que l'on ne pouvait pas appeler une macro via une règle, il fallait en faire une Dll externe
Si à partir de 2003 (je pense) on peut executer un script sur une règle.

Dernière modification par Oliv- ; 20/05/2008 à 16h58
Oliv- est actuellement connecté   Envoyer un message privé Réponse avec citation
Vieux 20/05/2008, 14h51   #10 (permalink)
Responsable Outlook
 
Avatar de Dolphy35
 
Date d'inscription: octobre 2004
Localisation: Rennes
Messages: 3 296
Envoyer un message via MSN à Dolphy35 Envoyer un message via Skype™ à Dolphy35
Par défaut

Salut,
Citation:
Envoyé par Oliv- Voir le message
Citation:
J'ai vu aussi en passant que l'on ne pouvait pas appeler une macro via une règle, il fallait en faire une Dll externe
Si à partir de 2003 (je pense) on peut exécuter un script sur une règle.
pas sur l'envoi de mail, il est possible sur le réception mais pas sur l'envoi

Comment créer un script dans une règle d'arrivée d'un message ?


Dolphy
__________________
Initiation au VBA d'Outlook
venez défier mabrute
Je ne réponds pas aux questions techniques par MP
Dolphy35 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 20/05/2008, 17h00   #11 (permalink)
Membre éprouvé
 
Avatar de Oliv-
 
Date d'inscription: mars 2006
Localisation: Tourcoing
Âge: 37
Messages: 492
Par défaut

Oui effectivement juste à la reception
Oliv- est actuellement connecté   Envoyer un message privé Réponse avec citation
Réponse

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

 
Offres d' emploi informatique sur Lesjeudis.com


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