Suppression indicateur "non lu"

degap05

XLDnaute Impliqué
Bonjour,

Dans la macro suivante, qui extrait et sauvegarde une pièce jointe, je n'arrive pas à placer: myItem.UnRead = False
pour éviter de voir apparaître l'indicateur de message non lu.
A l'emplacement actuel, cette commande est inefficace.

Message posté au départ sur:
[OL-2000] Suppression indicateur "non lu" - Forum des professionnels en informatique,
mais ce forum est très peu actif................

Pourriez-vous m'aider ?

Merci d'avance.

Sub TransmissionCommande()
Dim myOlApp As New Outlook.Application
Dim myNamespace As Outlook.NameSpace
Dim myInbox As Outlook.MAPIFolder
Dim myDestFolder As Outlook.MAPIFolder
Dim myItems As Outlook.Items
Dim myItem As Object
Set myNamespace = myOlApp.GetNamespace("MAPI")
Set myInbox = myNamespace.GetDefaultFolder(olFolderInbox)
Set myItems = myInbox.Items
Set myDestFolder = myInbox.Folders("Temp")

Dim strName As String

For Each myItem In myDestFolder.Items
'''''''''''''''''''''''''''''''''''''

Set Mail = myDestFolder.Items(myDestFolder.Items.Count)
For Each Attachment In Mail.Attachments
Attachment.SaveAsFile "E:\PG\UF-UAM\COMMANDES\" & Attachment.FileName

Next
myItem.UnRead = False
myItem.Delete

Next myItem


RemoveNewMailIcon

Set myNamespace = Nothing
Set myInbox = Nothing
Set myItems = Nothing
Set myDestFolder = Nothing


End Sub
 

GarnierFlorian

XLDnaute Nouveau
Re : Suppression indicateur "non lu"

Salut degap05 ! Déja je vois pas bien ce que tu vuex faire ? Tu veux que le message soit "non lu" ok, mais par exemple tu entends quoi avec ces lignes ? :

Code:
Set myItem = myInbox.Items 
Set myDestFolder = myInbox.Folders("Temp")

Pour ce que tu veux moi je fais de la manière suivante et ça marche très bien
:
Code:
Sub TransmissionCommande()
Dim myOlApp As New Outlook.Application
Dim myNamespace As Outlook.NameSpace
Dim myInbox As Outlook.MAPIFolder
Dim myDestFolder As Outlook.MAPIFolder
[COLOR=red]Dim myItems As Outlook.MailItem[/COLOR]
[COLOR=#ff0000][/COLOR] 
Set myNamespace = myOlApp.GetNamespace("MAPI")
Set myInbox = myNamespace.GetDefaultFolder(olFolderInbox)
[COLOR=lime]'Set myItem = myInbox.Items [/COLOR]
[COLOR=black]Set myDestFolder = myInbox.Folders("Temp")[/COLOR]
 
 
Dim strName As String
 
For Each [COLOR=red]myItems[/COLOR] In myDestFolder.Items
'''''''''''''''''''''''''''''''''''''
 
Set Mail = myDestFolder.Items(myDestFolder.Items.Count)
For Each Attachment In Mail.Attachments
Attachment.SaveAsFile "E:\PG\UF-UAM\COMMANDES\" & Attachment.FileName
 
Next
[COLOR=red]myItems[/COLOR].UnRead = False
[COLOR=red]myItems[/COLOR].Delete
 
Next [COLOR=red]myItems[/COLOR]
 
 
RemoveNewMailIcon
 
Set myNamespace = Nothing
Set myInbox = Nothing
Set myItems = Nothing
Set myDestFolder = Nothing
 
[COLOR=red]Set myOlApp = Nothing[/COLOR]
 
 
End Sub

Bon après je vois pas l'intéret de dire qu'un message est lu ou pas si tu le supprime directement après ??

J'espère t'avoir un peu aidé, mais je commence tout juste alors je fais peut-être des petites erreurs^^ mais test ça et si jamais c'est pas ce que tu veux ou si du coup j'empeche une action précise tu me dit on reverra ça !!

Peace
 

degap05

XLDnaute Impliqué
Re : Suppression indicateur "non lu"

Bonjour, GarnierFlorian,

Il s'agit d'éviter, une fois la pièce jointe sauvegardée et le message supprimé, que reste affiché l'indication de message non lu, dans la barre des tâches.

Merci de ton attention.
 

GarnierFlorian

XLDnaute Nouveau
Re : Suppression indicateur "non lu"

Bonjour !! En fait je vois pas très bien ce que tu entends par l'indication au niveau de la barre des tâches ? Pour moi à partir du moment où le message est supprimée on n'a plus d'indications sur celui-ci !!! En fait si ça se trouve je comprends pas bien ce que tu souhaites :/ ^^ J'ai commencé le vba depuis pas longtemps donc ça me fait des petits exercices^^


Je rajoute une précision : je viens de voir que tu étais sous 2000, et moi je travaille sous 2003 ! Je ne sais pas mais du coup ça peut poser du problème sur les solutions que je te donne !
Je peux t'envoyer mon code en déclarant les variables en objet, comme ça pas de rattachements à une référence et donc plus de problèmes pour les vversions :)

Bonne journée, Peace :)
 
Dernière édition:

degap05

XLDnaute Impliqué
Re : Suppression indicateur "non lu"

Bonjour,

"En fait je vois pas très bien ce que tu entends par l'indication au niveau de la barre des tâches"

Il s'agit de l'enveloppe qui signale l'arrivée d'un message et qui disparaît quand on ouvre celui-ci.

Avec la macro utilisée, bien que le message soit supprimé, on a toujours l'enveloppe affichée dans la barre des tâches. Elle ne disparaît que lorsqu'on ferme et ré ouvre Outlook.

A+
 

GarnierFlorian

XLDnaute Nouveau
Re : Suppression indicateur "non lu"

Salut !

Bon et bien j'ai commencé à chercher, mais pour le moment je seraisp lus d'avis de te dire que ce n'est pas possible de supprimer cette enveloppe :S

J'ai pensé à une chose pour détourner le problème, qui serait de mettre à la fin de ta macro une procédure qui ouvre une instance outlook et qui la referme aussitot, mais ça ne serait pas très propre...

Après il existe peut-être une fonction pour recharger une instance ou quelque chose dans le genre ?!

Je vais aussi un peu me pencher sur la question !

Bonne journée, Peace :)
 

GarnierFlorian

XLDnaute Nouveau
Re : Suppression indicateur "non lu"

Salut degap05 :)

Bon je viens de trouver quelque chose qui je pense risque de t'intéresser :)^^

Jette un coup d'oeil sur le lien suivant :

http://www.outlookcode.com/files/clear_icon.txt

Et si jamais tu aurais besoin j'ai trouvé ça sur le site suivant (je te le mets traduit en français) :

Ce lien n'existe plus

Et le site original :

To clear the Outlook envelope icon from the Windows system tray

Voilà, j'espère que cela va te permettre de résoudre ton problème, mai je pense que ça devrait aller :)

Bonne journée, Peace :)
 

Statistiques des forums

Discussions
314 628
Messages
2 111 337
Membres
111 104
dernier inscrit
JEMADA