Désactiver les règles d'Outlook depuis Excel
Bonjour,
Est-il possible de désactiver les règles Outlook depuis Excel en VBA ? J'essaye de récupérer le dernier mail envoyé dans une boite mail (ce que j'arrive à faire) mais cette macro doit pouvoir s'appliquer à plusieurs boites et donc pouvoir prendre désactiver les règles changeant de dossier les mails envoyés. (mon but étant juste de sauvegarder dans un répertoire un mail (en version .send et pas .display) que j'envoie par excel.
(J'ai déja créé une discussion à ce sujet d'ailleurs, si quelqu'un à une solution -> https://forum.excel-pratique.com/viewtopic.php?f=2&t=124640 )
Merci.
Finalement j'ai trouvé une solution que je partage car j'ai l'impression que internet les forums sont très peu fournis d'informations sur le sujet.
Public tableau(20)
Sub DesactivateRule()
Dim oFromCondition As Object
Set OutApp = CreateObject("Outlook.Application")
Dim st As Outlook.Store
Dim myRules As Outlook.Rules
Dim rl As Outlook.Rule
Dim i As Integer
' récupération l'emplacement de stockage des règles
Set st = OutApp.Session.DefaultStore
' récupération de toutes les règles disponibles
Set myRules = st.GetRules
' Parcours de chaque règle
i = 0
For Each rl In myRules
If rl.Enabled = True Then
rl.Enabled = False
Else
tableau(i) = rl.Name
i = i + 1
End If
Next
myRules.Save
End Sub
Sub ActivateRule()
Dim oFromCondition As Object
Set OutApp = CreateObject("Outlook.Application")
Dim st As Outlook.Store
Dim myRules As Outlook.Rules
Dim rl As Outlook.Rule
' récupération l'emplacement de stockage des règles
Set st = OutApp.Session.DefaultStore
' récupération de toutes les règles disponibles
Set myRules = st.GetRules
' Parcours de chaque règle
For Each rl In myRules
If Not present(tableau, rl.Name) Then rl.Enabled = True
Next
myRules.Save
End Sub
Function present(tableau, nom)
For i = 0 To UBound(tableau)
If tableau(i) = nom Then present = True
Next
End FunctionUne fonction désactive les règles et l'autre les actives en prenant soin de ne pas activer ceux étant déjà désactiver à l'origine