Avatar billede kle Praktikant
14. juli 2020 - 10:25 Der er 10 kommentarer

Tilpasning af kode

Jeg ønsker at flytte mine fuldførte Outlook opgaver automatisk ved fuldførelse over i en separat mappe, som jeg har kaldt "Completed Tasks".
Jeg fandt denne guide med VBA kode (https://www.datanumen.com/blogs/3-quick-steps-auto-archive-completed-tasks-outlook/) som jeg har sat ind, men den virker ikke og jeg tænker at det skyldes, at jeg kører Office/Outlook på dansk (og måske derfor ikke genkender nogle objekter)?

Er der nogle som kan omskrive koden, så den kan afvikles i en dansk Outlook?

På forhånd mange tak.

VBA koden:

Public WithEvents olItems As Outlook.Items

Private Sub Application_Startup()
    Set olItems = Session.GetDefaultFolder(olFolderTasks).Items
End Sub

Private Sub olItems_ItemChange(ByVal Item As Object)
    Dim CompTaskf As Folder

    If TypeName(Item) = "TaskItem" And Item.Complete = True Then
      Set CompTaskf = Session.GetDefaultFolder(olFolderTasks).Folders("Completed Tasks")
      Item.Move CompTaskf
    End If
End Sub
Avatar billede tjp Mester
14. juli 2020 - 12:00 #1
Du har tjekket at du kan køre kode i VBE? Sæt fx et breakpoint inden i Application_Startup og tryk F5...
Avatar billede kle Praktikant
14. juli 2020 - 13:31 #2
Ja, jeg har prøvet at køre koden og den kører igennem uden fejl, men uden resultat. Når jeg kører anden del af koden (Private Sub olItems_ItemChange), så popper den op med Macros som jeg har oprettet og gemt.

Jeg kan ikke finde ud af om koden skal tilpasses, så den genkender Outlook opgave objekterne (på dansk), og/eller jeg gør noget galt?
Avatar billede tjp Mester
14. juli 2020 - 13:56 #3
Hmm, prøv at sætte nogle breakpoints og tjek hvad olItems indeholder i Locals vinduet...
Avatar billede kle Praktikant
14. juli 2020 - 14:25 #4
Hver gang jeg kører anden del af koden så popper den op med Macros som jeg vælger at køre. Den kører herefter alle kodelinjer igennem uden fejl.
Locals vinduet er tom.
Se min opsætning her: https://ibb.co/Ln1sG5D
Avatar billede tjp Mester
14. juli 2020 - 15:40 #5
Sæt breakpoint i linjen efter (dvs. i linje med End Sub):
Set olItems = Session.GetDefaultFolder(olFolderTasks).Items
Stil cursor i samme linje og tryk F5 - så burde afvikling af kode stoppe i denne linje med en gul pil der peger på linjen.
Hvis det sker, burde du kunne se variabler og indhold i Locals-vinduet - hvis ikke, burde du få en fejlmeddelelse af en art...
Avatar billede kle Praktikant
14. juli 2020 - 16:01 #6
Det er nu prøvet - ingen fejl, men informationer i Locals vinduet: https://ibb.co/sJHmGVH

Hvad kan udledes af dette og hvad skal ændres for at det fungerer?
Avatar billede tjp Mester
14. juli 2020 - 23:51 #7
Du kan tjekke hvad der er i olItems ved at klikke på +
Her burde det fremgå om items heri er af typen: Variant/Object/TaskItem

Men det ligner nu, hvad jeg har.

Hvis du sætter breakpoint i olItems_ItemChange, fx linjen med 'If TypeName(Item) = "TaskItem" And Item.Complete = True Then', så burde du havne her, hvis du i Outlooks opgave-view markerer en opgave til fuldført eller modsat. Så kan du steppe videre i programmet med F8 for at se, hvor den bevæger sig hen derfra...
Avatar billede kle Praktikant
15. juli 2020 - 09:45 #8
olItems står som typen OlObjectClass.

Uanset hvor jeg sætter breakpoint i anden del af koden og bruger F8 til at bevæge mig igennem, så sker der ikke noget. Hvis jeg derimod bruger F5 så popper Macros op og her kører jeg den som jeg tidligere har gemt og så kører den igennem uden fejl. Der står dog ikke noget i Locals, men når den er kørt igennem med F5 så har den oprettet et "Module1" hvor den i Locals skriver <No Variables>.
Avatar billede kle Praktikant
16. juli 2020 - 14:08 #9
Nogle ideer til hvordan jeg kommer videre?
Avatar billede tjp Mester
18. juli 2020 - 23:23 #10
Tjek fx hvor mange items der er i olItems. Hvis der er nogen, er det lidt underligt, at 'olItems_ItemChange' ikke bliver kaldt, hvis du ændrer status på en opgave i Outlook.

Tjek også at makroer tilladt i Outlook (Filer >> Indstillinger >> Center for sikkerhed og rettighedsadministration >> Indstilling for Center for sikkerhed og rettighedsadministration >> Makroindstillinger >> vælg mindst 'Meddelelser om alle makroer')
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester