Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
Home
DiscussionsAccessExcelInfoPathOutlookPowerPointPublisherWord
DirectoryUser Groups
Related Topics
Outlook ExpressInternet ExplorerWindowsMS Server ProductsMore Topics ...

MS Office Forum / Excel / Worksheet Functions / November 2005

Tip: Looking for answers? Try searching our database.

Regular Time and Over Time

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
Marhanen - 23 Nov 2005 15:09 GMT
I am working with a spreadsheet that contains whole hour times for Regular,
Over, Sick and Vacation times.  When 9 is placed in Regular time, I want the
number to remain at the max number of 8 hours Regular time, moving the 1 hour
Over time into the next cell.

            Reg    Over   Sick   Vacation
Monday    9        1       0           0
Tuesday   8

When I type that 9 in, I am looking for a function or VBA code that can
automatically make it 8 and move the 1 over.  I have figured out how to move
the 1 over using =IF(C8>8,C8-8,"-") but it would be nice to be able to type
that 9 and it will automatically make it 8 and then a 1 goes into the Over
column.

Any suggestions?  Thanks!
Bob Phillips - 23 Nov 2005 16:24 GMT
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Const WS_RANGE As String = "B:B"

   On Error GoTo ws_exit:
   Application.EnableEvents = False
   If Not Intersect(Target, Me.Range(WS_RANGE)) Is Nothing Then
       With Target
           If .Value > 8 Then
               .Offset(0, 1).Value = .Value - 8
               .Value = 8
       End With
   End If

ws_exit:
   Application.EnableEvents = True
End Sub

'This is worksheet event code, which means that it needs to be
'placed in the appropriate worksheet code module, not a standard
'code module. To do this, right-click on the sheet tab, select
'the View Code option from the menu, and paste the code in.

Signature

HTH

RP
(remove nothere from the email address if mailing direct)

> I am working with a spreadsheet that contains whole hour times for Regular,
> Over, Sick and Vacation times.  When 9 is placed in Regular time, I want the
[quoted text clipped - 12 lines]
>
> Any suggestions?  Thanks!
widemonk - 23 Nov 2005 16:26 GMT
Try this. It may not be the most effecient use of system resources but
it works.

Unfortunately, it fires on EVERY cell that has a number greater than 8,
not just the regular hours.

Code:
--------------------
   Public oldcell As String
 ---------------------
 Private Sub Worksheet_Activate()
 oldcell = ActiveCell.Address
 End Sub
 ---------------------
 Private Sub Worksheet_Change(ByVal Target As Range)
 
 If Range(oldcell).Value > 8 Then
 
 Range(oldcell).Select
 temphrs = ActiveCell - 8
 ActiveCell.Value = 8
 ActiveCell.Offset(0, 1) = ActiveCell.Offset(0, 1) + temphrs
 End If
 oldcell = ActiveCell.Address
 
 
 End Sub
 ---------------------
 Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 oldcell = ActiveCell.Address
 
 End Sub
--------------------

Signature

widemonk

 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2009 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.