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 19/09/2011, 16h41   #1
Membre régulier
 
Inscription : octobre 2008
Messages : 224
Détails du profil
Informations forums :
Inscription : octobre 2008
Messages : 224
Points : 76
Points : 76
Par défaut Déplacer un mail dans Outlook après envoi

Bonjour,

Lors d'une routine, j'aimerais pouvoir déplacer le mail que je viens d'envoyer dans un dossier d'archive.

En regardant la FAQ, j'ai bricolé le code suivant

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
Set appOutlook = New Outlook.Application
Set oEmail = appOutlook.CreateItem(olMailItem)
Dim objNSpace As Namespace
Dim fldDestination As MAPIFolder
 
With oEmail
    .To = "toto@hotmail.com"
    .Subject = "Test"
    .Body = "Coucou"
    .Send
End With
 
'If Not Item.Class = olMail Then GoTo fin
 
With appOutlook
    Set objNS = .GetNamespace("MAPI")
    Set objFolder = objNS.PickFolder
    If TypeName(objFolder) = "Nothing" Then
        Set objNS = .GetNamespace("MAPI")
        Set objFolder = objNS.Folders("Dossiers personnels").Folders("Divers")
    End If
    Set Item.SaveSentMessageFolder = objFolder
End With
Fin:
Mais le code bloque sur l'avant-dernière ligne ("Objet requis"):

Code :
1
2
 
Set Item.SaveSentMessageFolder = objFolder
Je sens que j'ai mal positionné un End With ou mal déclaré quelque chose, mais je ne vois pas jusqu'à maintenant...
neiluj26 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/09/2011, 22h08   #2
Expert Confirmé
 
Avatar de vodiem
 
Homme Diem VO
Vivre
Inscription : avril 2006
Messages : 2 644
Détails du profil
Informations personnelles :
Nom : Homme Diem VO
Âge : 40
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Vivre
Secteur : Conseil

Informations forums :
Inscription : avril 2006
Messages : 2 644
Points : 3 895
Points : 3 895
tu pourrais utiliser le champ .cci et créer une règle outlook pour stoker automatiquement dans ton dossier... je te l'accorde c'est pas ce qui a de mieux.
pour ca il faudrait que tu contactes un modérateur pour déplacer ton post dans le bon forum.
vodiem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2011, 09h32   #3
Membre régulier
 
Inscription : octobre 2008
Messages : 224
Détails du profil
Informations forums :
Inscription : octobre 2008
Messages : 224
Points : 76
Points : 76
Bonjour,

Ah, je n'ai pas pensé à cette solution d'utiliser le champ .cci. C'est intelligent, et ça va me permettre de contourner mon problème pour l'instant. Merci.

Si vous savez comment corriger mon code, n'hésitez pas, hein?

J'ai hésité sur le forum. C'est vrai qu'il a peut-être plus sa place dans le forum Outlook...
neiluj26 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2011, 11h05   #4
Membre régulier
 
Homme Thierry Pallier
Regisseur
Inscription : octobre 2006
Messages : 47
Détails du profil
Informations personnelles :
Nom : Homme Thierry Pallier
Âge : 52
Localisation : France, Seine Maritime (Haute Normandie)

Informations professionnelles :
Activité : Regisseur
Secteur : Arts - Culture

Informations forums :
Inscription : octobre 2006
Messages : 47
Points : 94
Points : 94
Bonjour
Apparement il faut définir ".SaveSentMessageFolder" avant l'envoi du mail.
La procédure suivante fonctionne très bien.

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
Sub essais()
 
    Dim appOutlook As Object
    Dim oEmail As Object
    Dim objNSpace As Object
    Dim fldDestination As MAPIFolder
    Dim objFolder As Object
 
    Set appOutlook = CreateObject("Outlook.Application")    'New Outlook.Application
    Set oEmail = appOutlook.CreateItem(olMailItem)
    Set objNSpace = appOutlook.GetNamespace("MAPI")
    Set objFolder = objNSpace.PickFolder
 
    If TypeName(objFolder) = "Nothing" Then
 
        Set objFolder = objNSpace.Folders("Dossiers personnels").Folders("Divers")
    End If
 
    With oEmail
        .To = "superman@bd.com"
        .Subject = "Test"
        .Body = "Coucou"
 
    End With
    Set oEmail.SaveSentMessageFolder = objFolder
    oEmail.Send
 
End Sub
A+
Thierry_PALLIER est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2011, 11h26   #5
Membre régulier
 
Inscription : octobre 2008
Messages : 224
Détails du profil
Informations forums :
Inscription : octobre 2008
Messages : 224
Points : 76
Points : 76
Bonjour,

Comme dirait M. Burns: "Excellent". C'est très clair, et ça fonctionne très bien.

Merci.
neiluj26 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 03h22.


 
 
 
 
Partenaires

Hébergement Web