Time Tracker

  • Thread starter Thread starter Duncan
  • Start date Start date
D

Duncan

Hi all,

I am currently creating a time tracker but I am concerned with maybe I
should change my design at this early stage as I feel it may not be as
accurate as I wanted.

I basically have a form with a load of option buttons and they are the
'tasks', the code behind one of them for example is:

Private Sub InPutting_Click()

Dim TxtDelim, CellDelim
TxtDelim = Chr(34)
CellDelim = ","
Open "G:\LEVY_GNT\GRANTS\Processing Team - TT\Time Tracker" &
"\data.csv" For Append As #1
MyString = TxtDelim & Application.UserName & TxtDelim & CellDelim &
TxtDelim & "Started" & TxtDelim & CellDelim & TxtDelim & "Inputting" &
TxtDelim & CellDelim & TxtDelim & "at" & TxtDelim & CellDelim &
CStr(Time())
Print #1, MyString
Close #1

End Sub

Private Sub InPutting_Exit(ByVal Cancel As MSForms.ReturnBoolean)

Dim TxtDelim, CellDelim
TxtDelim = Chr(34)
CellDelim = ","
Open "G:\LEVY_GNT\GRANTS\Processing Team - TT\Time Tracker" &
"\data.csv" For Append As #1
MyString = TxtDelim & Application.UserName & TxtDelim & CellDelim &
TxtDelim & "Stopped" & TxtDelim & CellDelim & TxtDelim & "Inputting" &
TxtDelim & CellDelim & TxtDelim & "at" & TxtDelim & CellDelim &
CStr(Time())
Print #1, MyString
Close #1

End Sub


Now, this puts the data in as two lines, a start and a finish, I could
do with the whole activity being logged as one line with just a
duration instead of a start and finish and that would save me a whole
load of headaches.

But I cant work out how to design and or code it,

Any ideas anyone bearing in mind I am a real beginner with vba?

Duncan
 
You would probably need a public variable which you initialize in

Public StartTime as Date

Private Sub InPutting_Click()
StartTime = Time
End sub

then in the exit code, subtract the value of this variable from the current
time.

Without knowing more about the situation, this would be my guess.
 
(Apologies for the duplicate posts!)

Tom:

My subs now look like

Private Sub InPutting_Click()
StartTime = Time
End Sub
Private Sub InPutting_Exit(ByVal Cancel As MSForms.ReturnBoolean)

Dim TxtDelim, CellDelim
TxtDelim = Chr(34)
CellDelim = ","
Open "G:\LEVY_GNT\GRANTS\Processing Team - TT\Time Tracker" &
"\data.csv" For Append As #1
MyString = TxtDelim & Application.UserName & TxtDelim & CellDelim &
TxtDelim & "has been" & TxtDelim & CellDelim & TxtDelim & "Inputting" &
TxtDelim & CellDelim & TxtDelim & "for" & TxtDelim & CellDelim & Time()
- StartTime
Print #1, MyString
Close #1

End Sub

But when i do it it only logs the end time, is it not minusing it
correctly?

Duncan
 
You didn't declare the Public Variable

Public StartTime as Date

Private Sub InPutting_Click()
StartTime = Time
End Sub


Private Sub InPutting_Exit(ByVal Cancel As MSForms.ReturnBoolean)

Dim TxtDelim, CellDelim
TxtDelim = Chr(34)
CellDelim = ","
Open "G:\LEVY_GNT\GRANTS\Processing Team - TT\Time Tracker" &
"\data.csv" For Append As #1
MyString = TxtDelim & Application.UserName & TxtDelim & CellDelim &
TxtDelim & "has been" & TxtDelim & CellDelim & TxtDelim & "Inputting" &
TxtDelim & CellDelim & TxtDelim & "for" & TxtDelim & CellDelim & Time()
- StartTime
Print #1, MyString
Close #1

End Sub



---------------------
a demo from the immediate window:

StartTime = Time

' pause for a short amount of time, then:

? format(time - StartTime,"hh:mm:ss")
00:00:21
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Back
Top