begin process at 2010 02 10 08:38:02
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Visual Basic 6

 > 

Divers

 > 

Débutants

 > 

Problème pour la fabrication d'une Macro de recherche dans Outlook 2003


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Problème pour la fabrication d'une Macro de recherche dans Outlook 2003

jeudi 26 octobre 2006 à 05:34:48 | Problème pour la fabrication d'une Macro de recherche dans Outlook 2003

Rose Pourpre


Bonsoir,

 

 

Voilà je suis nouvelle sur votre Forum, et je viens demander l'aide d'une âme (ou des âmes) charitable.

Voici, mon problème, je travaille avec Outlook 2003 avec plusieurs comptes de messageries, pour des raisons évidentes de facilités, j'ai crée plusieurs règles, mais sous Outlook 2003 les arguments de créations pour celles-ci sont assez peut nombreuses et pas toujours fonctionnelles.

 

Pour être plus claire, J'utilise Outlook 2003 (Fr) avec Kis 6 (KasperSky) configuré comme ma règle principale.

En résumé :

0-KasperSky

1-Ajout d'un drapeau vert quant je suis la cible.

2-Ajout d'un drapeau jaune quant dans l'objet il y a [!! SPAM] ou [?? Probable Spam].

3-Ajout d'un drapeau orange quant dans l'objet il y [adulte].

4-Ajout d'un drapeau violet quant je ne suis pas la cible.

5-Ajout d'un drapeau rouge quant dans l'objet il y [!! VIRUS].

6-Règle de classement des mails de l'expéditeur 1.

7-Règle de classement des mails de l'expéditeur 2.

.........

.........

.........

.........

Dans mon "Dossier personnel" (sous Outlook 2003), j'ai les répertoires habituels plus un autre de ma création que j'ai nommée "Archive", dans celui-ci j'ai aussi crée différentes rubriques (Amis, Administration, Provider, Famille, Informatique, Clients, ...), chacune de ces rubriques possèdent des sous rubriques (par exemple pour Amis : Paul, Amandine, Louis, Michel, etc..) et chacune de ces sous rubriques est subdiviser en deux (Reçus et Envoyés).

Cela peut paraître assez lourd, mais cela me fait gagner beaucoup de temps, car chacun des mails que je reçois est directement classé (ainsi que ceux que j'envoie), cela me permet de les retrouver plus facilement et rapidement.

Les seuls mails qui finissent par se retrouver tous seuls dans ma boite de réceptions sont ceux qui passent entre les mailles (chose que je rectifie au fur et à mesure).

 

Malheureusement rien n'est parfait, lorsque je veux répondre aux mails qui sont arrivé et non lu, je suis obliger de faire une "Recherche avancée" dans Outlook 2003, avec comme seuls critères "Dans Archives" (le nom de mon répertoire de classement dans "Dossier Personnel") et "non lu(s)".

 

Ce que j'aimerai et qui m'est complètement inaccessible pour l'instant (par rapport aux macros et autres), car je suis complètement une néophyte dans ce secteur, c'est de faire (ou de trouver) une macro qui rechercherai dans mon répertoire "Archives" (dans Outlook 2003) et ses sous-répertoires, les mails "Non lus" pour les annoter "Lus", puis en faire une "copie" (seulement des "Non lus") dans ma "Boîte de réception" en les annotant (seulement les copies) "Non lus" et en leurs assignant un "drapeau bleu".

 

Merci d'avance de l'aide que vous donnerez à une débutante complètement dépassé par cela.

 

jeudi 26 octobre 2006 à 13:16:52 | Re : Problème pour la fabrication d'une Macro de recherche dans Outlook 2003

wape

Bonjour,

Voici un petit exemple qui pourra peut-être t'aider :

Sub Recherche()

Dim oNms As NameSpace
Dim oFdr As MAPIFolder
Dim oFd1 As MAPIFolder
Dim oFd2 As MAPIFolder
Dim oFd3 As MAPIFolder
Dim oItm As MailItem
Dim oItc As MailItem

Set oNms = Application.GetNamespace("MAPI")

'Se positionner dans le dossier "Archives"
Set oFdr = oNms.Folders("Dossiers personnels").Folders("Archives")

'Parcourir les sous-dossiers du 1er niveau
For Each oFd1 In oFdr.Folders
   'Parcourir les sous-dossiers du 2ème niveau
   For Each oFd2 In oFd1.Folders
      'Parcourir les sous-dossiers du 3ème niveau
      For Each oFd3 In oFd2.Folders
         'Parcourir les messages
         For Each oItm In oFd3.Items
            'Traiter uniquement les messages non lus
            If oItm.UnRead = True Then
               'Afficher l'emplacement et le sujet du message traité (pour debug)
               'MsgBox "Message traité: " & oFd1.Name & "/" & oFd2.Name & "/" & oFd3.Name & "/" & oItm.Subject
               'Créer une copie du message original
               Set oItc = oItm.Copy
               'Mettre le drapeau bleu sur la copie
               oItc.FlagIcon = olBlueFlagIcon
               'Déplacer la copie dans la boîte de réception
               oItc.Move oNms.GetDefaultFolder(olFolderInbox)
               'Marquer le message original comme lu
               oItm.UnRead = False
            End If
         Next oItm
      Next oFd3
   Next oFd2
Next oFd1

'Libérer les ressources
Set oItc = Nothing
Set oItm = Nothing
Set oFd3 = Nothing
Set oFd2 = Nothing
Set oFd1 = Nothing
Set oFdr = Nothing
Set oNms = Nothing

End Sub


wape

jeudi 26 octobre 2006 à 22:02:45 | Re : Problème pour la fabrication d'une Macro de recherche dans Outlook 2003

Rose Pourpre

Bonsoir,

 

 

 

Merci beaucoup pour le code, mais je l'avoue je ne sais pas trop ce qui se passe avec, voilà j'ai copié ton code dans une Macro, et lors du premier essai j'ai eu une erreur que j'ai pu corriger facilement (ce n'était pas une erreur de code mais de pluriel "Dossiers personnels" pour "Dossier personnel").

 

Mais lors du second essai une autre erreur est survenu dans Microsoft Visual-Basic la ligne mit en cause est celle contenant "Next oItm".

 

Comme je l'ai dit, je ne comprends pas grand-chose à cela, pourrais tu si évidement tu as le temps me dire ce qui ne va pas.

 

Tout de fois je te remercie quant même pour ce code.

 

J'ai aussi une autre question, je me souviens qu'avant dans l'Excel, il y avait une fonction qui permettait d'enregistrer dans une macro certaines séquences aux claviers et à la souris pour les traduire en code par la suite pour la fabrication de macro d'automatisation, est ce que cela existe encore dans Outlook 2003 (je ne suis pas chez pour l'instant, c'est une chose que je vérifierai à mon retour, mais je te pose quant même la question on ne sait jamais) ?

 

 

Merci d'avance encore une fois du temps que tu as mit pour me répondre et de celui que tu pourrais mettre à me rerépondre.

 

jeudi 26 octobre 2006 à 23:22:01 | Re : Problème pour la fabrication d'une Macro de recherche dans Outlook 2003

Rose Pourpre

Re-Bonsoir,

 

 

En somme voici exactement ce que j'aimerai que face cette macro (sans lancement automatique) :

1-Recherche dans "Archives" et ses sous dossiers (peut importe le nombre), des mails non-lus.

2-Application de deux actions sur le résultat (uniquement) de cette recherche :

    a-Copie des mails résultant de la recherche dans la "Boîte de réception".

    b-Transformations des mails (pas ceux de la "Boîte de réception") "non lus" en "Lu".

3-Recherche dans "Boite de réception" (pas des sous dossier), des mails non-lus.

4-Ajout d'un drapeau bleu, sur tous les mails résultant de cette recherche.

 

Quant j'y pense comme cela c'est sûre cela semble facile, mais quant je chipote pour voir comment faire, je m'embourbe et cela bien au dessus de ma tête.

 

 

 

P.S. Pour l'histoire des macros et Excel, je viens de vérifier, et la version 2003 possède toujours cette fonction, il est bien dommage que Outlook 2003 ne possède pas le même genre de fonctions, car cela simplifierai bien les choses.

 

jeudi 26 octobre 2006 à 23:42:45 | Re : Problème pour la fabrication d'une Macro de recherche dans Outlook 2003

wape

Bonsoir,

Pourrais-tu me dire exactement quel est le message d'erreur qui s'affiche à l'écran lorque la macro s'arrête sur la ligne "Next oItm" ?

Question subsidiaire : par rapport au dossier "Archives", les mails non lus se trouvent-ils forcément dans l'un des sous-sous-sous-dossiers "Reçus" ou peuvent-ils être ailleurs ?


wape

vendredi 27 octobre 2006 à 01:13:39 | Re : Problème pour la fabrication d'une Macro de recherche dans Outlook 2003

Rose Pourpre

Re-Bonsoir,


Pour commecer merci d'éssayer de résoudre l'un de mes problèmes, qui pour moi est insurmontable.


Pour répondre à ta première question voici ce qui est mit :
Erreur d'exécution '13':
Incompatibilité de type
Si je clique sur le bouton "Débogage", le programme Visual Basic s'ouvre et les deux mot "Next oItm" sont surligné en jaune.

Pour répondre à ta seconde question, les mails ne se trouve jamais dans la racine de "Archives", mais toujours dans l'un de ses sous répertoires, et il peut arrivé que cela ne soit pas directement dans un "Reçus" (quant je n'ai pas le temps de faire une rêgle je les classe sommairement pour par la suite plus facilement savoir quels mails ne possèdent pas de rêgles)



 

vendredi 27 octobre 2006 à 12:49:36 | Re : Problème pour la fabrication d'une Macro de recherche dans Outlook 2003

wape

Bonjour,

Merci des réponses. Ci-dessous un nouveau code, qui remplace le précédent :

Option Explicit

Dim oNms As NameSpace

Sub Recherche()

Dim oFdr As MAPIFolder
Dim oFdx As MAPIFolder

Set oNms = Application.GetNamespace("MAPI")

'Se positionner dans le dossier "Archives"
Set oFdr = oNms.Folders("Dossier personnel").Folders("Archives")

'Lire récursivement les sous-dossiers de "Archives"
For Each oFdx In oFdr.Folders
   Call LectureSousDossier(oFdx)
Next oFdx

End Sub

Sub LectureSousDossier(oFdr As MAPIFolder)

Dim oFdx As MAPIFolder
Dim oItm As MailItem
Dim oItc As MailItem
Dim oIts As Items

'Parcourir les éléments
Set oIts = oFdr.Items
For Each oItm In oIts
   'Vérifier qu'il s'agit bien d'un mail
   If oItm.Class = olMail Then
      'Traiter uniquement les messages non lus
      If oItm.UnRead = True Then
         'Créer une copie du message original
         Set oItc = oItm.Copy
         'Mettre le drapeau bleu sur la copie
         oItc.FlagIcon = olBlueFlagIcon
         'Déplacer la copie dans la boîte de réception
         oItc.Move oNms.GetDefaultFolder(olFolderInbox)
         'Marquer le message original comme lu
         oItm.UnRead = False
      End If
   End If
Next oItm

For Each oFdx In oFdr.Folders
   Call LectureSousDossier(oFdx)
Next oFdx

End Sub


wape

lundi 30 octobre 2006 à 03:36:21 | Re : Problème pour la fabrication d'une Macro de recherche dans Outlook 2003

Rose Pourpre

Bonsoir,

 

 

 

 

Je viens de rentrer se soir de mon Weekend, encore merci de ton aide mais ton code pose encore un problème.

Le message d'erreur est identique à celui qui se trouve plus haut, et lorsque je clique sur "Débogage" cette fois ci les mots surlignés de jaune sont "Next oItm".

 

Mais les personnes chez qui j'ai passé le Weekend, mon parlé d'une fonction qui se trouve sous Outlook 2003 qui chez moi était désactivé (Mon fichier Pst date de Outlook 97, ce qui fait qu'il a masqué certaines fonctions), je les ai cherché et je viens de la trouver.

En sommes Outlook 2003 permet de fabriquer des dossiers "Virtuels" qui contiennent le résultat d'une recherche prédéfini à l'avance.

Dans mon cas, j'ai crée (et recrée certains qui ont été mit sous silence à cause de mon fichier PST), 4 dossiers "virtuels", que j'ai aussi placé dans mes Favoris d'Outlook 2003 :

1-Courrier indésirable non lu : ne contient que les mails "non lu" de se dossier.

2-Courrier "non lu" : contient les mails "non lu" de tous les dossiers sauf de entre autres les Courrier indésirables.

3-Courrier volumineux : comme son non le dit.

4- Pour le suivi : contient les mails possédant une annotation à suivre.

Ces dossiers se présents de la même manière qu'un dossier normal dans Outlook 2003, mais ne sont en fin de compte que "virtuels", ils ne contiennent pas vraiment de mail mais que le résultat d'une recherche (sans aucun chichi, pour ainsi dire).

 

En somme, par exemple lorsque je reçois un mail, celui-ci est traité par l'ensemble de mes règles (celle dont j'ai déjà parlé plus haut), une fois cela fait, ces mêmes règles ne peuvent laisser les mails que dans trois endroits bien précis :

1-Boite de réception.

2-Courrier indésirable.

3-Mon dossier "Archives"

Peut importe où se situe ces mails dans ces endroits, puisque non lu ils apparaitront tous dans mes dossiers "Virtuels".

Une fois ma lecture de ces dit mails faite, ils perdent automatiquement leurs status de "non lu", et donc ne font plus partie de ces dit dossiers, en somme exactement que ce que fait ta macro.

 

Encore une fois merci d'avoir essayé de m'aider, mais cette solution est bien plus pratique encore que mon idée de départ.

 

 

Tout de fois, comme tu peux le voir j'ai quant même essayé ta macro, c'était quant même le minimum que je pouvais faire, puisque tu as prit de ton temps pour répondre à ma demande.

Mais tout de fois sans avoir la maîtrise de ce genre de choses, je voudrais de te poser une question pour un peut mieux essayer de comprendre les macros et autres :

Pourquoi utilises-tu un balayage (un scanne) du répertoire archive avec une boucle définie pour ce faire au lieu des fonctions "Search", "AdvancedSearch", "SearchSubFolders" par exemple, y a-t-il une raison particulière ?

Car cette technique, consomme relativement beaucoup de ressources et de temps (je possède plus de 3.000 mails classé, que je ressors très souvent pour plusieurs raison).

Je compte quant même essayé de me lancer dans l'apprentissage de la création de macro c'est pour cela que je me permets de te poser cette question (n'y voit pas une critique, ce n'est vraiment pas mon but).

 

Je te remercie quant même du temps que tu m'as consacré.

 



Cette discussion est classée dans : outlook, ajout, rubriques, mails, drapeau


Répondre à ce message

Sujets en rapport avec ce message

Lire un mail (direct OR outlook) [ par Kerad ] *** INTRO ****Cette question peut être stupide voir banale mais je n'ai jamais touché à la prog internet (sauf sous Delphi) = je n'y connais rien et d VB6 - Outlook 2000 [ par Guyzmo ] Je dois rapidement developper un robot qui doit recuperer les mails envoyes d'une certaine adresse et analyser les pieces jointes Bon je ne suis pas u Lire les mails Outlook [ par Fonky83 ] Salut,J'ai créé une application VB (qui fonctionne) et il me faudrait maintenant rajouter une fonctionnalité.Il faudrait qu'à partir de mon applicatio macro pour deplacer mails hotmail dans un folder outlook [ par chapeaumelon ] Bonjour à tous, voici le problème; j'utilise mon IPAQ pour lire entre autre mes mails. Mais les mails hotmail ne sont pas synchroniser. Dans outlook X Outlook [ par DHUCH ] Bonjour,Je cherche une macro qui permet lorsque je clique sur un mail dans Outlook ou sur des mails sélectionner de déclancher une copie de chaque mai VB + Outlook [ par daivil ] Salut a tous,Alors je vais vous expliquez brievement mon problème...J'ai un dossier dans Outlook qui contient environ 400 mails.Tous ces mails contien OutLook:Mettre les mails(inBox) ds un dossier personnel [ par oliv76n ] Bonjour,Comment faire pour deplacer un mail dans un dossier personnel?Olivier mails OUTLOOK via VB [ par BERPA2 ] J'avais une appli VBA Excel qui lisait des messages OUTLOOK et en renvoyait, mais ça ne tourne plus . Il semble qu'on ne peut plus accéder aux destina Effacement de mails [ par Sicyons ] Salut à tous !Mon problème est le suivant :J'ai créé en VB 6 une appli récupèrant les mails réceptionnés dans une boîte mail en POP3 et leurs pièces j Mails avec Outlook Express [ par Arsena ] Bonjour a tousje cherche le code pour envoyer des mails via Outlook Expresssi quelqu'un a la solution merci d'avanceMD


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,718 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales