Hello,
 
J'aurai besoin d'un coup de main sur du VBA (je ne suis pas développeur, même si j'arrive généralement à me dépatouiller pour faire ce dont j'ai besoin).
 
Objectifs de mon script : création automatique de folder et des règles de messages associés sur Outlook. En gros, dans mon boulot je fais du ticketing, et je créé à chaque fois un dossier dont le nom corresponds au numéro de l'incident. Tous mes échanges de mails avec les clients / constructeurs portent ensuite la référence de l'incident dans l'objet, et je voudrais rediriger automatiquement les mails dans les dossiers correspondants.
 
Ce que j'arrive à faire :
- Saisir le numéro de l'incident
- Créer le folder correspondant dans Outlook
- Créer le dossier correspondant sur le disque (pour l'enregistrement des fichiers joints, etc)
- Créer une règle pour rediriger le courier entrant matchant le numéro de l'incident dans le folder spécifié
 
Ce que je n'arrive pas à faire :
- Créer une règle pour rediriger le courrier sortant matchant le numéro de l'incident dans le folder spécifié.
 
Sub Ouverture()
           Dim myCases As String
     Dim myDirectory As String
     Dim fullPathCreation As String
     'Spécifier ici le répertoire dans lequel vous voulez créer les tickets (ce répertoire doit déjà exister)
     myCases = "Tickets"
     'Spécifier le répertoire local correspondant au ticket
     myDirectory = "D:\TICKETS\Test\"
                         Dim myolApp As Outlook.Application
     Dim myNamespace As Outlook.NameSpace
           'Création du nouveau dossier dans le répertoire indiqué précedemment
     Set myolApp = CreateObject("Outlook.Application" )
     Set myNamespace = myolApp.GetNamespace("MAPI" )
     'Demande à l'utilisateur le numéro de ticket
     FolderName = InputBox("Indiquer le numéro du ticket :" )
     Set objStrCtc = myNamespace.GetDefaultFolder(olFolderInbox).Folders(myCases).Folders.Add(FolderName, olFolderInbox)
     objStrCtc.ShowAsOutlookAB = True
     'Création du répertoire local
     fullPathCreation = myDirectory + FolderName
     If Len(Dir(fullPathCreation, vbDirectory)) = 0 Then
         MkDir fullPathCreation
     End If
           Dim colRules As Outlook.Rules
     Dim oRule As Outlook.Rule
     Dim colRuleActions As Outlook.RuleActions
     Dim oMoveRuleAction As Outlook.MoveOrCopyRuleAction
     Dim oExceptSubject As Outlook.TextRuleCondition
     Dim oInbox As Outlook.Folder
     Dim oMoveTarget As Outlook.Folder
       'Selectionne le folder cible de la règle
     Set oInbox = Application.Session.GetDefaultFolder(olFolderInbox)
     Set oMoveTarget = oInbox.Folders(myCases).Folders(FolderName)
           'Récupère les règles existantes
     Set colRules = Application.Session.DefaultStore.GetRules()
           'Créer les règles IN et OUT
     Set oRuleIn = colRules.Create(FolderName + "_IN", olRuleReceive)
     Set oRuleOut = colRules.Create(FolderName + "_OUT", olRuleSend)
       'Définition la règle IN
     Set oExceptSubject = oRuleIn.Conditions.Subject
     With oExceptSubject
         .Enabled = True
         .Text = Array(FolderName)
     End With
               Set oMoveRuleAction = oRuleIn.Actions.MoveToFolder
     With oMoveRuleAction
         .Folder = oMoveTarget
         .Enabled = True
     End With
        
     'Définition la règle OUT
     Set oExceptSubject = oRuleOut.Conditions.Subject
     With oExceptSubject
         .Enabled = True
         .Text = Array(FolderName)
     End With
       Set oMoveRuleAction = oRuleOut.Actions.MoveToFolder
     With oMoveRuleAction
         .Folder = oMoveTarget
         .Enabled = True
     End With
           'Update the server and display progress dialog
     colRules.Save
       End Sub
   | 
 
La partie qui déconne :
 
   'Définition la règle OUT
     Set oExceptSubject = oRuleOut.Conditions.Subject
     With oExceptSubject
         .Enabled = True
         .Text = Array(FolderName)
     End With
       Set oMoveRuleAction = oRuleOut.Actions.MoveToFolder
     With oMoveRuleAction
         .Folder = oMoveTarget
         .Enabled = True
     End With  | 
 
Le message d'erreur qui m'est ressorti l'est sur le dernier .Enabled = True => impossible d'activer la règle.
En effet lors de mes tests, lorsque je regarde dans la liste des règles après avoir lancé le script, les règles sont bien créées, mais la règle OUT n'est pas activée.
 
Le message d'erreur :
 
Citation :
 
 Opération non valide. Impossible d'aciver cette action de règle, car la règle est en lecture seule, n'est pas valide pour le type de règle, ou cette action entre en conflit avec une autre action de la règle.
   | 
 
Cependant, je ne comprend pas. La règle n'est pas en lecture seule, et est valide pour ce type de règle ? Et je ne vois pas pourquoi elle entrerait en conflit avec une autre action de la règle.
Surtout que l'autre partie (partie IN donc) fonctionne bien. Les types olRuleRecieve et olRuleSend sont les mêmes normalement...
 
Bref, je bloque, et mes recherches sur le net et les différents forums ne m'ont pas aidé 
 
Quelqu'un aurait une idée ?