uren registratie via outlook agenda

wesley5479

Gebruiker
Lid geworden
12 mei 2011
Berichten
113
Dag allemaal,

Ik hou voor mijn werk mijn gewerkte uren bij via outlook agenda. Ik heb deze een categorie met kleur grijs gegevens als naam WERK. Nu wil ik graag deze gewerkte uren makkelijk optellen. Is hier een tool voor? ik hoor het graag.
Als voorbeeld heb ik een foto toegevoegd. Kort gezegd wil ik weten wat de exact gewerkte per week zijn voor de betreffende categorie.

groet,
Wesley
 

Bijlagen

  • uren outlook.jpg
    uren outlook.jpg
    910,2 KB · Weergaven: 9
De foto is er niet.
Daarnaast kan je beter een voorbeeld document plaatsen.
 
Dat is geen Excel document.
 
Ik heb het nu met een VBA ingevoegd maar dit werkt omslachtig, dan moet ik alles wat ik wil selecteren handmatig aanklikken. ik heb de voglende VBA gebruikt:

Sub CountTimeSpent()
Dim oOLApp As Outlook.Application
Dim oSelection As Outlook.Selection
Dim oItem As Object
Dim iDuration As Long
Dim iTotalWork As Long
Dim iMileage As Long
Dim iResult As Integer
Dim bShowiMileage As Boolean

bShowiMileage = False

iDuration = 0
iTotalWork = 0
iMileage = 0

On Error Resume Next

Set oOLApp = CreateObject("Outlook.Application")
Set oSelection = oOLApp.ActiveExplorer.Selection

For Each oItem In oSelection
If oItem.Class = olAppointment Then
iDuration = iDuration + oItem.Duration
iMileage = iMileage + oItem.Mileage
ElseIf oItem.Class = olTask Then
iDuration = iDuration + oItem.ActualWork
iTotalWork = iTotalWork + oItem.TotalWork
iMileage = iMileage + oItem.Mileage
ElseIf oItem.Class = Outlook.olJournal Then
iDuration = iDuration + oItem.Duration
iMileage = iMileage + oItem.Mileage
Else
iResult = MsgBox("Please select some Calendar, Task or Journal items at first!", vbCritical, "Items Time Spent")
Exit Sub
End If
Next

Dim MsgBoxText As String
MsgBoxText = "Total time spent: " & vbNewLine & iDuration & " minutes"

If iDuration > 60 Then
MsgBoxText = MsgBoxText & HoursMsg(iDuration)
End If

If iTotalWork > 0 Then
MsgBoxText = MsgBoxText & vbNewLine & vbNewLine & "Total work recorded; " & vbNewLine & iTotalWork & " minutes"

If iTotalWork > 60 Then
MsgBoxText = MsgBoxText & HoursMsg(iTotalWork)
End If
End If

If bShowiMileage = True Then
MsgBoxText = MsgBoxText & vbNewLine & vbNewLine & "Total iMileage; " & iMileage
End If

iResult = MsgBox(MsgBoxText, vbInformation, "Items Time spent")

ExitSub:
Set oItem = Nothing
Set oSelection = Nothing
Set oOLApp = Nothing
End Sub

Function HoursMsg(TotalMinutes As Long) As String
Dim iHours As Long
Dim iMinutes As Long
iHours = TotalMinutes \ 60
iMinutes = TotalMinutes Mod 60
HoursMsg = " (" & iHours & " Hours and " & iMinutes & " Minutes)"
End Function
 
Daar heb ik inderdaad overheen gelezen ;)
 
Een voorzetje, vanuit Excel.
Nog filteren op datum en onderwerp.
 

Bijlagen

  • LeesOutlookAgenda.xlsm
    19,5 KB · Weergaven: 2
Laatst bewerkt:
Ietsje mooier gemaakt met filter op weeknummer en sortering op datum en userinterface en data in aparte werkbladen.
 

Bijlagen

  • LeesOutlookAgenda.xlsm
    24,6 KB · Weergaven: 3
is super gemaakt @AHulpje dit werkt echt wel heel erg mooi! bedankt hiervoor. kan ik ook ipv de minuten naar een urentotaal? ik keek al in de VBA en zie daar het volgende wel staan: Cells(r, 3) = oAppointmentItem.Duration ( maar hij rekent dan minuten, kan dat ook in uren?) en kan er dan een autosom komen?

En is het mogelijk dat hij één bepaalde kalender alleen leest. in mijn geval agenda: TWL genaamd
 
Laatst bewerkt:
Minuten kun je heel simpel omrekenen naar uren door de waarde door 60 te delen.
 
Als bij jou TWL in kolom A terecht komt zou dit moeten werken:
 

Bijlagen

  • LeesOutlookAgenda.xlsm
    26,2 KB · Weergaven: 1
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan