OVH Cloud OVH Cloud

archier les messages lus

5 réponses
Avatar
Sylviane
Bonjour,
Je voudrais programmer un archivage des messages lus dans ma boîte de
réception chaque semaine. Est-ce possible?

Merci

5 réponses

Avatar
Circé
Bonjour,

L'archivage automatique ne s'occupe pas des messages lus ou non lus.
et je ne vois pas de possibilité de faire une règle sur l'ancienneté
relative des messages...
En conséquence, je ne vois rien d'automatique...

Circé
http://faqword.free.fr

Sylviane a formulé ce vendredi :
Bonjour,
Je voudrais programmer un archivage des messages lus dans ma boîte de
réception chaque semaine. Est-ce possible?

Merci


Avatar
Spectre
Bonsoir,

Ci dessous le code qui devrait faire l'affaire.
Il déplacera dans le répertoire "test", à l'ouverture d'outlook, tout
document présent dans la boite de reception qui a été lu et reçu depuis
plus de 7 jours.

Pour le faire fonctionner

- créer un sous repertoire (que j'ai appelé "test" ici ) à la "boite de
reception"

-

Private Sub Application_Startup()
On Error Resume Next

Dim olItem As Mailitem
Dim objInbox As MAPIFolder
Dim oSelection
Dim test As Outlook.MAPIFolder


Set objNS = Application.GetNamespace("MAPI")
Set objInbox = objNS.GetDefaultFolder(olFolderInbox)
Set oSelection = objInbox.Items

Set test = objInbox.Folders("test") 'répertoire de destination

For i = 1 To oSelection.Count
Set olItem = oSelection.Item(i)
If oSelection.Count <> 0 Then ' si il ya des mails
If olItem.UnRead = False And olItem.ReceivedTime < Date
- 7 Then
olItem.Move test
Else
End If
End If
Next
End Sub

Bye
Avatar
Sylviane
MErci beaucoup pour votre réponse, cela marche mais pas automatiquement. J'ai
créé un module et copier le code mais il faut que j'aille dans visual basic
pour l'exécuter. Comment le faire automatiquement à l'ouverture? il y a
sûrement un paramètre quelque part qui m'échappe Merci d'avance en tout cas

Sylviane


Bonsoir,

Ci dessous le code qui devrait faire l'affaire.
Il déplacera dans le répertoire "test", à l'ouverture d'outlook, tout
document présent dans la boite de reception qui a été lu et reçu depuis
plus de 7 jours.

Pour le faire fonctionner

- créer un sous repertoire (que j'ai appelé "test" ici ) à la "boite de
reception"

-

Private Sub Application_Startup()
On Error Resume Next

Dim olItem As Mailitem
Dim objInbox As MAPIFolder
Dim oSelection
Dim test As Outlook.MAPIFolder


Set objNS = Application.GetNamespace("MAPI")
Set objInbox = objNS.GetDefaultFolder(olFolderInbox)
Set oSelection = objInbox.Items

Set test = objInbox.Folders("test") 'répertoire de destination

For i = 1 To oSelection.Count
Set olItem = oSelection.Item(i)
If oSelection.Count <> 0 Then ' si il ya des mails
If olItem.UnRead = False And olItem.ReceivedTime < Date
- 7 Then
olItem.Move test
Else
End If
End If
Next
End Sub

Bye





Avatar
Spectre
Bonjour,
Il ne faut pas copier le code dans un module. Il est plus simple de le
copier directement dans "thisoutlooksession" qui s'affiche à gauche
quand vous lancez VBA.

Il suffit pour cela de double cliquer sur "thisoutlooksession" et une
fenêtre s'ouvre.

Si vous voulez le laisser dans un module, il faut supprimer la première
et dernièr ligne du code envoyé et
- remplacer la première ligne par "public function archiver()"
- remplacer la denière ligne par "end function"

- dans le formulaire ouvert en double cliquant sur
"thisoutlooksession",
copier
Private Sub Application_Startup()
call archiver
end sub

A l'ouverture d'outlook, le code se lancera auomatiquement

Bye



Sylviane a utilisé son clavier pour écrire :
MErci beaucoup pour votre réponse, cela marche mais pas automatiquement. J'ai
créé un module et copier le code mais il faut que j'aille dans visual basic
pour l'exécuter. Comment le faire automatiquement à l'ouverture? il y a
sûrement un paramètre quelque part qui m'échappe Merci d'avance en tout cas

Sylviane


Bonsoir,

Ci dessous le code qui devrait faire l'affaire.
Il déplacera dans le répertoire "test", à l'ouverture d'outlook, tout
document présent dans la boite de reception qui a été lu et reçu depuis
plus de 7 jours.

Pour le faire fonctionner

- créer un sous repertoire (que j'ai appelé "test" ici ) à la "boite de
reception"

-

Private Sub Application_Startup()
On Error Resume Next

Dim olItem As Mailitem
Dim objInbox As MAPIFolder
Dim oSelection
Dim test As Outlook.MAPIFolder


Set objNS = Application.GetNamespace("MAPI")
Set objInbox = objNS.GetDefaultFolder(olFolderInbox)
Set oSelection = objInbox.Items

Set test = objInbox.Folders("test") 'répertoire de destination

For i = 1 To oSelection.Count
Set olItem = oSelection.Item(i)
If oSelection.Count <> 0 Then ' si il ya des mails
If olItem.UnRead = False And olItem.ReceivedTime < Date
- 7 Then
olItem.Move test
Else
End If
End If
Next
End Sub

Bye







Avatar
Sylviane
Encore merci. J'ai déjà fait beaucoup de macros en Excell; mais jamais en
Outlook. C'est la première qui est la + difficile, il ne me reste plus qu'à
continuer



Bonjour,
Il ne faut pas copier le code dans un module. Il est plus simple de le
copier directement dans "thisoutlooksession" qui s'affiche à gauche
quand vous lancez VBA.

Il suffit pour cela de double cliquer sur "thisoutlooksession" et une
fenêtre s'ouvre.

Si vous voulez le laisser dans un module, il faut supprimer la première
et dernièr ligne du code envoyé et
- remplacer la première ligne par "public function archiver()"
- remplacer la denière ligne par "end function"

- dans le formulaire ouvert en double cliquant sur
"thisoutlooksession",
copier
Private Sub Application_Startup()
call archiver
end sub

A l'ouverture d'outlook, le code se lancera auomatiquement

Bye



Sylviane a utilisé son clavier pour écrire :
MErci beaucoup pour votre réponse, cela marche mais pas automatiquement. J'ai
créé un module et copier le code mais il faut que j'aille dans visual basic
pour l'exécuter. Comment le faire automatiquement à l'ouverture? il y a
sûrement un paramètre quelque part qui m'échappe Merci d'avance en tout cas

Sylviane


Bonsoir,

Ci dessous le code qui devrait faire l'affaire.
Il déplacera dans le répertoire "test", à l'ouverture d'outlook, tout
document présent dans la boite de reception qui a été lu et reçu depuis
plus de 7 jours.

Pour le faire fonctionner

- créer un sous repertoire (que j'ai appelé "test" ici ) à la "boite de
reception"

-

Private Sub Application_Startup()
On Error Resume Next

Dim olItem As Mailitem
Dim objInbox As MAPIFolder
Dim oSelection
Dim test As Outlook.MAPIFolder


Set objNS = Application.GetNamespace("MAPI")
Set objInbox = objNS.GetDefaultFolder(olFolderInbox)
Set oSelection = objInbox.Items

Set test = objInbox.Folders("test") 'répertoire de destination

For i = 1 To oSelection.Count
Set olItem = oSelection.Item(i)
If oSelection.Count <> 0 Then ' si il ya des mails
If olItem.UnRead = False And olItem.ReceivedTime < Date
- 7 Then
olItem.Move test
Else
End If
End If
Next
End Sub

Bye