Créer un simple fichier vbs avec :
Set objShell = CreateObject("Shell.Application")
objShell.WindowsSecurity
Exemple de boucle For :
'Pour chaque cellule dans le classeur "Liste" dans la colone C
For Each cell In Sheets("Liste").Range("C:C")
'Si la cellule n'est pas vide et est différente du menu "Menu"
If IsEmpty(cell.Value) = False And cell.Value <> "Menu" Then
'on récupère le contenu de la cellule
Contenu = cell.Value
End If
Next
--------------------------------
1 - On édite le registre (admin)
Validé sous Outlook 2016 jusque 365 :
HKEY_CURRENT_USERSoftwareMicrosoftOffice16.0OutlookSecurity
DWORD: EnableUnsafeClientMailRules
Value: 1
2 - Puis le code :
Ouvrir outlook puis ALT + F11 (Ouvre l'éditeur vba)
=> Insertion, module, et coller mon exemple
Cet exemple permet l'enregistrement des pièces jointes dans le dossier de votre choix :
Option Explicit
Public Sub SaveAttachmentsToDisk(MItem As Outlook.MailItem)
Dim oAttachment As Outlook.Attachment
Dim sSaveFolder As String
sSaveFolder = "C:UsersDesktopvotredossier"
For Each oAttachment In MItem.Attachments
oAttachment.SaveAsFile sSaveFolder & oAttachment.DisplayName
Next
End Sub
3 - Enfin exécuter la règle sous outlook :
= > fichier , règles et alertes ... puis sous "action à effectuer", choisir "run a script"
Exemple si l'on ne souhaite que les pdf's :
Public Sub SaveAttachmentsToDisk(MItem As Outlook.MailItem)
Dim oAttachment As Outlook.Attachment
Dim sSaveFolder As String
sSaveFolder = "votre emplacement dossier"
For Each oAttachment In MItem.Attachments
'Seulement si pdf
If Right(oAttachment.FileName, 3) = "pdf" Then
MsgBox (oAttachment)
oAttachment.SaveAsFile sSaveFolder & oAttachment.DisplayName
End If
Next
End Sub
Enjoy
'on commence à 2 pour sauter notre première feuille de calcul
If (mainworkBook.Sheets.Count > 1) Then
For i = 2 To mainworkBook.Sheets.Count
NomFeuille = mainworkBook.Sheets(i).Delete
Next
End If
Enjoy