View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
Harald Staff[_2_] Harald Staff[_2_] is offline
external usenet poster
 
Posts: 449
Default Variable Problem


Hi

Without testing (it's way past midnight here and a very hot summer night
with cold beer),
Cells(1, 2).Value = Now
will trigger the Workbook_SheetChange event. You may not want that. Turn it
off by Application.EnableEvents = False, or as I prefer, set a boolean value
to true and abort the event code action if true.
Note also that Target.Column vill fail if pasting multiple cells, switch to
Target(1).Column, maybe also abort code if Target.Count 1.

HTH. Best wishes Harald

"RVS" wrote in message
...
Here is another riddle for all of you...

I am writing a program that will recognize what row the user is inputting
data into and will store that row number as variable nRow. I have declared
this as a public variable in another module as I need the whole program to
be
able to access it. I included a message box in my code in order to make
sure
that my program is finding the correct row. My problem is whenever I enter
new data, the message box that appears indicates row 1 column 2. I suppose
this makes sense as I have Cells(1,2) throughout the next major chunk of
code. I tried pasting my nRow code after all of the code the references
Cells(1,2) but still no success. Here is what I've got...


Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As
Range)



'Determine which row has a new client activity

With Target(1)
nRow = .Row
nCol = .Column
sAddr = .Address
End With
nRow = Target(1).Row
MsgBox "row: " & nRow & vbCr & _
"col: " & nCol & vbCr & _
sAddr

'If data is entered into Columns 6,7,8,9,10,11, or 12 then update the
Time/Date Stamp

If Target.Column = 6 Then
Cells(1, 2).Value = Now

ElseIf Target.Column = 7 Then
Cells(1, 2).Value = Now

ElseIf Target.Column = 8 Then
Cells(1, 2).Value = Now

ElseIf Target.Column = 9 Then
Cells(1, 2).Value = Now

ElseIf Target.Column = 10 Then
Cells(1, 2).Value = Now

ElseIf Target.Column = 11 Then
Cells(1, 2).Value = Now

ElseIf Target.Column = 12 Then
Cells(1, 2).Value = Now

End If


'Fill Month ListBox before dialog box appears
With UserForm1.ComboBox1
.RowSource = ""
.AddItem "Jan"
.AddItem "Feb"
.AddItem "Mar"
.AddItem "Apr"
.AddItem "May"
.AddItem "Jun"
.AddItem "Jul"
.AddItem "Aug"
.AddItem "Sep"
.AddItem "Oct"
.AddItem "Nov"
.AddItem "Dec"
End With

'Fill Week Number ListBox before dialog box appears

With UserForm1.ComboBox2
.RowSource = ""
.AddItem "1"
.AddItem "2"
.AddItem "3"
.AddItem "4"
.AddItem "5"
End With
UserForm1.Show


End Sub


Any help would be much appreciated! Thanks!