Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Outlook > VBA Outlook

Réponse
 
Outils de la discussion
Vieux 26/06/2008, 15h17   #1 (permalink)
Candidat au titre de Membre du Club
 
Date d'inscription: mai 2008
Messages: 26
Par défaut Probleme règle + script

Bonjour dans le cadre d'un projet, il faut que je transfere les pieces jointes et le contenu de certain des emails que je reçoit dans un dossier de mon ordinateur.
Pour cela j'ai essayé d'utiliser cette reponse dans la FAQ.

http://outlook.developpez.com/faq/?p...eceive_Save_PJ
Puis lorsque j'édite ma règle et que je lui met le bon script, à la fin outlook affiche: This is a client-only rule, and will process outlook is runnig.

J'ai laissé mais après lorsque je recevai des emails qui correspondaient à ma règle (qui marchait si je stocke dans un sous dossier de ma inbox) rien ne se passait.

C'est sous xp pro outlook 2003.

Cordialement
forca est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 26/06/2008, 21h48   #2 (permalink)
Responsable Outlook
 
Avatar de Dolphy35
 
Date d'inscription: octobre 2004
Localisation: Rennes
Messages: 3 275
Envoyer un message via MSN à Dolphy35 Envoyer un message via Skype™ à Dolphy35
Par défaut

Salut,

tu peux nous en dire plus sur ta règle et surtout ta procédure


Dolphy
__________________
Initiation au VBA d'Outlook
venez défier mabrute
Je ne réponds pas aux questions techniques par MP
Dolphy35 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 30/06/2008, 10h36   #3 (permalink)
Candidat au titre de Membre du Club
 
Date d'inscription: mai 2008
Messages: 26
Par défaut

Alors ma regle: je filtre les emails qui contiennent dans leurs sujets les mots Akamai ou Analytics et les emails venant d'une addresse particuliere, puis comme action je lance un script et je n'exécute aucune autre règle (comme demandé dans la faq).

Ma procédure, je me suis contenté de recopier le script de la faq dans un module,que j'ai mis en lien avant, et j'ai créé un repertoire c/temp/pj comme demandé.

Ca a marché un matin, lorsque j'ai lancé outlook mais depuis ça ne fait plus rien.

Je voudrais que tout les jours lorsque outlook reçoit mes mails mes pieces jointes choisies par la règle soient transférées vers ce dossiers c/temp/pj.
forca est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 30/06/2008, 16h01   #4 (permalink)
Candidat au titre de Membre du Club
 
Date d'inscription: mai 2008
Messages: 26
Par défaut

Je viens de recopier le script dans un module et j'ai bien édité une règle. Je m'envoi un email test, ça marche la piece jointe est bien transferée, par contre je m'envoie un deuxieme email un quart d'heure plus tard pour tester et là rien ne se passe.

Il faut que je mette quoi exactement dans this outlooksession, pour l'instant j'ai rien mis pour le projet. Mais la règle dit que ça s'appliquera à chaque fois qu'un email arrive.

Désolé je suis débutant en vba.
forca est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 30/06/2008, 19h32   #5 (permalink)
Responsable Outlook
 
Avatar de Dolphy35
 
Date d'inscription: octobre 2004
Localisation: Rennes
Messages: 3 275
Envoyer un message via MSN à Dolphy35 Envoyer un message via Skype™ à Dolphy35
Par défaut

Salut,

as-tu suivit le conseil d'Oliv- ?

Citation:
A partir de 2003 préférer l'événement NewMailEx pour ne pas parcourir tout le dossier ou l'exécution d'un script sur une règle.
http://dolphy35.developpez.com/artic...k/vba/#LV-A-10


Dolphy
__________________
Initiation au VBA d'Outlook
venez défier mabrute
Je ne réponds pas aux questions techniques par MP
Dolphy35 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 01/07/2008, 09h14   #6 (permalink)
Membre éprouvé
 
Avatar de Oliv-
 
Date d'inscription: mars 2006
Localisation: Tourcoing
Âge: 37
Messages: 446
Par défaut

Bonjour,
Il faut savoir si c'est la règle qui pose pb ou le script, peux tu nous coller ce script ?

Pour savoir si le règle s'execute bien tu peux ajouter au début.
Code :
msgbox "ok"
Oliv- est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 02/07/2008, 18h13   #7 (permalink)
Candidat au titre de Membre du Club
 
Date d'inscription: mai 2008
Messages: 26
Par défaut

Je vais suivre le conseil d'oliv et utiliser NewMailEx avec le script dune autre faq:
Code :
 Private Sub Application_NewMailEx(ByVal EntryIDCollection As String)
'---------------------------------------------------------------------------------------
' Procédure : Application_NewMailEx
' Auteur    : Dolphy35
' Site      : http://dolphy35.developpez.com
' Détail    : Permet de déplacer le nouveau message si celui-ci est envoyé par un expéditeur précis
'---------------------------------------------------------------------------------------
'
    'Déclartions
    Dim MonApp As Outlook.Application
    Dim MonMail As Object
    Dim MonNameSpace As Outlook.NameSpace
    Dim MonDossier As Outlook.Folder
    
    'Instance des variables
    Set MonApp = Outlook.Application
    Set MonNameSpace = MonApp.GetNamespace("MAPI")
    Set MonDossier = MonNameSpace.GetDefaultFolder(olFolderInbox)
    Set MonMail = Application.Session.GetItemFromID(EntryIDCollection)
    
        'Test si l'expéditeur correpond dans ce cas on déploce le mail
        'vers le dossier Temp de votre boîte de réception
        If MonMail.SenderEmailAddress = "personne@domaine.fr" Then
            MonMail.Move MonDossier.Folders("Temp")
        End If
        
End Sub
 
 
Seulement quand je compile pour la ligne Dim MonDossier As Outlook.Folder
il m'affiche une erreur user-defined type not defined
J'ai cocher la library Microsoft scripting runtime.
Après je vais reprendre un partie de l'autre script pour deplacer les pieces jointes vers un autre dossier de mon ordinateur.

Cordialement
forca est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 03/07/2008, 09h48   #8 (permalink)
Membre éprouvé
 
Avatar de Oliv-
 
Date d'inscription: mars 2006
Localisation: Tourcoing
Âge: 37
Messages: 446
Par défaut

SAlut,
et qu'est-ce qui n'alliat pas dans
Sub extrait_PJ_vers_rep(strID As Outlook.MailItem) ?

Ajoute une référence à Microsoft CDO 1.21 (OU WINDOWS 2000)
Oliv- est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 03/07/2008, 10h53   #9 (permalink)
Candidat au titre de Membre du Club
 
Date d'inscription: mai 2008
Messages: 26
Par défaut

Pour Sub extrait_PJ_vers_rep(strID As Outlook.MailItem) , le script ne marchait tout simplement pas chez moi, quand je copiais le script dans le module. Je creais la règle, je respectais les indications de la faq, ça marchait une fois et puis c'est tout. Alors je ne sais pas si il fallait que je rentre du code dans thisoutlooksession.

Pour le newmailex j'ai toujours le meme probleme avec toutes les références que tu m'a proposé.
forca est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 09/07/2008, 10h26   #10 (permalink)
Membre éprouvé
 
Avatar de Oliv-
 
Date d'inscription: mars 2006
Localisation: Tourcoing
Âge: 37
Messages: 446
Par défaut

Salut,
Le problème doit venir de
Code :
Set MonMail = Application.Session.GetItemFromID(EntryIDCollection)
où EntryIDCollection n'a pas été défini.
Oliv- est déconnecté   Envoyer un message privé Réponse avec citation
Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Outlook > VBA Outlook

 
Offres d' emploi informatique sur Lesjeudis.com


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide