View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.misc
joel joel is offline
external usenet poster
 
Posts: 9,101
Default Converting time-formatted to text-based data

Try this code

Sub contractname()

DNames = Array("M", "Tu", "W", "Th", "F")
RowNum = 110
Contract = "FT NR 36"
CName = Contract
DayIndex = 0
For ColCount = Range("C" & RowNum).Column To _
Range("P" & RowNum).Column Step 2

StartHour = Hour(Cells(RowNum, ColCount))
StartMinute = Minute(Cells(RowNum, ColCount))
EndHour = Hour(Cells(RowNum, ColCount + 1))
EndMinute = Minute(Cells(RowNum, ColCount + 1))

CHours = DNames(DayIndex) & " (" & StartHour & "H"
If StartMinute < 0 Then
CHours = CHours & Format(StartMinute, "#00")
End If

CHours = CHours & "-" & Format(EndHour & "H", "#00")
If EndMinute < 0 Then
CHours = CHours & EndMinute
End If
CHours = CHours & ")"

CName = CName & "," & CHours
DayIndex = DayIndex + 1
Next ColCount

End Sub


"Zakynthos" wrote:

I'm setting up several thousand contract names for a workforce management
program from time-formatted data in Excel and am hoping there might be a way
using a VB script to look up the value of a cell and convert it to form part
of the unique name given to that contract.

Example: the data running from Sunday start attendance to Saturday end
attendance is contained in, say, cells: c110-p110

00:00 00:00 08:00 16:00 08:00 16:30 08:00 16:30 08:00 16:00 08:00 16:00 00:00 00:00

The standard part of the contract name I need to generate is: "FT NR 36",
followed by:

M (8h-16h),Tu (8h-16h30), W (8h-16h30), Th (8h-16h), F (8h-16h)

The 00:00 values in start end of first 2 cells (Sunday) c110 & d110 and last
2 cells (Saturday) o110 & p110 should return no values in the heading, as
shown above. If there was data in these cells it should return S(start-end
hrs) and Sa (start-end hrs) in the same format as the Mon-Fri attendances
shown above.

Many thanks for any advice