View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
TOMD TOMD is offline
external usenet poster
 
Posts: 33
Default Pausing macro for user Excel input

Thanks Steve, I'll give that a try.
--
TomD


"STEVE BELL" wrote:

Just thought of an easier way - use a change event in the worksheet module.
The code below counts the number of entries in the row of a selected cell.
If there are no entries, it selects the first cell in column A of the row.
All the user has to do is move to any cell in the next row. This can be
done
with the down arrow, or Enter.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.EnableEvents = False
If WorksheetFunction.CountA(Rows(Target.Row)) = 0 Then
Cells(Target.Row, 1).Select
End If
Application.EnableEvents = True
End Sub

You can automate the column selection and first cell selection with the
below code.
This one responds each time a cell is changed. If the changed cell is in
columns A, B, C, or D
it will move to the next column. If the changed cell is in column E - it
will move to the first cell in the next row.

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column < 5 Then
Target.Offset(0, 1).Select
Else: Cells(Target.Row + 1, 1).Select
End If
End Sub
--
steveB

Remove "AYN" from email to respond
"TomD" wrote in message
...
I would like to create a macro that would improve efficiency in data input
to
an Excel spreadsheet. My operator needs to enter five columns of data per
row, then go to the next row's column A and start over. I've created a
simple
do loop to control cursor movement, but don't know how to pause the macro
while the operator keys in data. Is there any way to do this in VBA?

Here's what I have so far:

Sub detailline()
Dim c As Integer

Do Until c = 5
ActiveCell.Offset(0, 1).Select
c = c + 1
' I need to pause the macro at each column to allow for user input

Loop

ActiveCell.Offset(1, -5).Select
c = 0

End Sub

Thanks for your help,


--
TomD