Ma macro Outlook a fonctionné à la fois, puis s'est arrêtée. Lors de l'analyse, la macro renvoie une erreur "Erreur de compilation: Variable non définie". Il semble que la macro ne reconnaît pas que ce dossier existe. J'ai coupé le code au strict minimum et c'est un problème reproductible. La macro reconnaît les dossiers standard tels que JUNK et DRAFTS mais pas PROCESSED_FOLDERS. J'ai essayé de renommer Processed_Folders ainsi que de créer un nouveau dossier avec un nom différent. Pas de joie.Outlook vba ne trouve pas de dossier existant
Structure des dossiers est:
[email protected]
Inbox
Drafts
Sent
Trash
Junk
Processed_Reports
Outbox
Sync Issues1 (This computer only)
SearchFolders
CODE:
Sub testfforfolder()
Dim olApp As Outlook.Application
Dim objNS As Outlook.NameSpace
Dim olFolder As Outlook.MAPIFolder
Dim msg As Outlook.MailItem
Set olApp = Outlook.Application
Set objNS = olApp.GetNamespace("MAPI")
Set olFolder = objNS.GetDefaultFolder(olFolderInbox)
On Error GoTo xyz
Set olFolder = olFolder.Folders("Processed_Reports")
MsgBox "Folder Exists" ' This line works if I use DRAFTS or JUNK
Exit Sub
xyz:
MsgBox ("Cannot find Folder") ' I get here if I use PROCESSED_REPORTS
Exit Sub
End Sub
(1) Qu'est-ce que la ligne est mise en évidence de l'erreur « variable non définie »? (2) Votre code repose sur "[email protected]" contenant la boîte de réception par défaut. Est-ce vrai? Sur mon système, la boîte de réception par défaut est dans "fichier de données Outlook". –
Au début de cette réponse, https://stackoverflow.com/a/12146315/973283, une macro peut vous aider à confirmer la cause du problème. Essayez 'Set oFolder = Session.Folders (" [email protected] "). Dossiers (" Inbox ")' –
Ce script lève l'alerte "Can not Find Folder". Dans le script original, le mot INBOX était surligné dans une ligne qui disait: olm.Move Inbox.Folders ("Processed_Reports") [Note: olm était DIM olm As Outlook.MailItem] Après avoir lutté, j'ai isolé le problème de cette question de ne pas reconnaître le dossier. –