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
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...
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?
tjp Mester
14. juli 2020 - 13:56 #3
Hmm, prøv at sætte nogle breakpoints og tjek hvad olItems indeholder i Locals vinduet...
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
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...
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?
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...
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>.
kle Praktikant
16. juli 2020 - 14:08 #9
Nogle ideer til hvordan jeg kommer videre?
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')
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

Opret Preview

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





Computerworld
Statens Serum Institut har slettet alle sendte mails ved en fejl: "Det er dybt beklageligt"
Alle sendte mails fra Statens Seruminstitut og Sundhedsdatastyrelsen er blevet slettet, hvis de er sendt før 22. juli, oplyser de to myndigheder.
CIO
Torben Fabrin og Arla måtte på få dage omstille hele deres produktion da coronaen ramte
Da coronaen ramte verden måtte mejerigiganten Arla på få dage omstille sin produktion. Samtidig voksede salget massivt til supermarkeder mens institutioner og restauranter gik næsten i stå. Hør hvordan Arla kom gennem krisen ved blandt andet være klar med realtime analytics.
Job & Karriere
På jagt efter et it-job i Jylland? Her er 10 stillinger fra Aabenraa til Aalborg, der ledige netop nu
Vi har fundet en række spændende stillinger til dig, der jagter et it-job. Her kan du vælge og vrage mellem ledige stillinger lige fra Aabenraa til Aalborg.
White paper
Sådan kan du arbejde effektivt uanset tid, sted og type af enhed
Hvad nu hvis dit arbejde, din information, dine processer og teknologien bag ved, var organiseret på en måde så det passede til din organisation – alt sammen guidet af en intelligent udgave af det digitale arbejdsrum? Det er visionen bag Atea og Citrix´s samarbejde med digital workspace – en smartere og mere effektiv måde at arbejde på. I dette whitetpaper kan du derfor læse om, hvordan du kan skabe et mere effektivt og brugervenligt arbejdsrum uanset tid, sted og enhed. En løsning der på en gang er både enkel og som sætter brugeren i centrum.