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 01/05/2008, 21h22   #1
Responsable outils internes
 
Avatar de Nono40
 
Homme Bruno Guérangé
Ingénieur développement logiciels
Inscription : mai 2002
Messages : 7 899
Détails du profil
Informations personnelles :
Nom : Homme Bruno Guérangé
Âge : 44
Localisation : France, Loir et Cher (Centre)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Industrie

Informations forums :
Inscription : mai 2002
Messages : 7 899
Points : 11 915
Points : 11 915
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 00
Vieux 02/05/2008, 19h47   #2
Rédacteur/Modérateur
 
Avatar de Dolphy35
 
Homme Morgan BILLY
Technicien de Production
Inscription : octobre 2004
Messages : 4 106
Détails du profil
Informations personnelles :
Nom : Homme Morgan BILLY
Âge : 33
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Technicien de Production
Secteur : Industrie

Informations forums :
Inscription : octobre 2004
Messages : 4 106
Points : 8 745
Points : 8 745
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
__________________
Personnaliser la vue Backstage d'Access 2010
Découvrez avec nous Office 2010
Je ne réponds pas aux questions techniques par MP
Dolphy35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2008, 03h25   #3
Responsable outils internes
 
Avatar de Nono40
 
Homme Bruno Guérangé
Ingénieur développement logiciels
Inscription : mai 2002
Messages : 7 899
Détails du profil
Informations personnelles :
Nom : Homme Bruno Guérangé
Âge : 44
Localisation : France, Loir et Cher (Centre)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Industrie

Informations forums :
Inscription : mai 2002
Messages : 7 899
Points : 11 915
Points : 11 915
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 00
Vieux 05/05/2008, 11h17   #4
Membre actif
 
Laurent CUENET
Inscription : août 2007
Messages : 139
Détails du profil
Informations personnelles :
Nom : Laurent CUENET

Informations forums :
Inscription : août 2007
Messages : 139
Points : 161
Points : 161
Envoyer un message via MSN à Laurent CUENET Envoyer un message via Skype™ à Laurent CUENET
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 00
Vieux 07/05/2008, 22h40   #5
Rédacteur/Modérateur
 
Avatar de Dolphy35
 
Homme Morgan BILLY
Technicien de Production
Inscription : octobre 2004
Messages : 4 106
Détails du profil
Informations personnelles :
Nom : Homme Morgan BILLY
Âge : 33
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Technicien de Production
Secteur : Industrie

Informations forums :
Inscription : octobre 2004
Messages : 4 106
Points : 8 745
Points : 8 745
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 :
1
2
3
4
5
6
7
8
9
10
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 :
1
2
3
4
5
6
7
8
9
10
11
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
__________________
Personnaliser la vue Backstage d'Access 2010
Découvrez avec nous Office 2010
Je ne réponds pas aux questions techniques par MP
Dolphy35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/05/2008, 17h48   #6
Responsable outils internes
 
Avatar de Nono40
 
Homme Bruno Guérangé
Ingénieur développement logiciels
Inscription : mai 2002
Messages : 7 899
Détails du profil
Informations personnelles :
Nom : Homme Bruno Guérangé
Âge : 44
Localisation : France, Loir et Cher (Centre)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Industrie

Informations forums :
Inscription : mai 2002
Messages : 7 899
Points : 11 915
Points : 11 915


Ta fonction brutte fonctionne, mais j'ai essayé d'ajouter un tri en fonction de l'adresse émetrice qui ne fonctionne pas :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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 00
Vieux 08/05/2008, 20h07   #7
Rédacteur/Modérateur
 
Avatar de Dolphy35
 
Homme Morgan BILLY
Technicien de Production
Inscription : octobre 2004
Messages : 4 106
Détails du profil
Informations personnelles :
Nom : Homme Morgan BILLY
Âge : 33
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Technicien de Production
Secteur : Industrie

Informations forums :
Inscription : octobre 2004
Messages : 4 106
Points : 8 745
Points : 8 745
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
__________________
Personnaliser la vue Backstage d'Access 2010
Découvrez avec nous Office 2010
Je ne réponds pas aux questions techniques par MP
Dolphy35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2008, 07h09   #8
Responsable outils internes
 
Avatar de Nono40
 
Homme Bruno Guérangé
Ingénieur développement logiciels
Inscription : mai 2002
Messages : 7 899
Détails du profil
Informations personnelles :
Nom : Homme Bruno Guérangé
Âge : 44
Localisation : France, Loir et Cher (Centre)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Industrie

Informations forums :
Inscription : mai 2002
Messages : 7 899
Points : 11 915
Points : 11 915
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 !
Nono40 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/05/2008, 10h13   #9
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,
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.
Oliv- est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/05/2008, 14h51   #10
Rédacteur/Modérateur
 
Avatar de Dolphy35
 
Homme Morgan BILLY
Technicien de Production
Inscription : octobre 2004
Messages : 4 106
Détails du profil
Informations personnelles :
Nom : Homme Morgan BILLY
Âge : 33
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Technicien de Production
Secteur : Industrie

Informations forums :
Inscription : octobre 2004
Messages : 4 106
Points : 8 745
Points : 8 745
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
__________________
Personnaliser la vue Backstage d'Access 2010
Découvrez avec nous Office 2010
Je ne réponds pas aux questions techniques par MP
Dolphy35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/05/2008, 17h00   #11
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
Oui effectivement juste à la reception
Oliv- est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h20.


 
 
 
 
Partenaires

Hébergement Web