Write data inthe worksheet / array

  • Thread starter Thread starter Robert
  • Start date Start date
R

Robert

Situation:

Cells 14,B holds my variable. This changes over time (by the vb code).

Is there some way that, when the data changes it will be written in a
new cell.

Something like this.

If Range("B14") <> Range("B14") Then
old new

copy it into cell C1. then C2, then C3 etc etc

And then loop this until no more changes.
 
Private Sub Worksheet_Change(ByVal Target As Range)
Const WS_RANGE As String = "B14"
Dim iRow As Long

On Error GoTo ws_exit
Application.EnableEvents = False

If Not Intersect(Target, Me.Range(WS_RANGE)) Is Nothing Then
With Target
iRow = Me.Cells(Me.Rows.Count, "C").End(xlUp).Row
If iRow > 1 Or Me.Cells(iRow, "C").Value <> "" Then
iRow = iRow + 1
End If
Me.Cells(iRow, "C").Value = .Value
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.


--
HTH

Bob

(there's no email, no snail mail, but somewhere should be gmail in my addy)
 
It looks like you want to trace the values that get put into B14. try this
code. the worksheet change function need to be placed in the Sheet code, not
a module.

Sub worksheet_change(ByVal target As Range)

If (target.Row = 14) And _
(target.Column = 2) Then

'get last value in column c
LastRow = Cells(Rows.Count, "C").End(xlUp).Row
oldvalue = Cells(LastRow, "C")

If (LastRow = 1) And IsEmpty(oldvalue) Then
Cells(1, "C") = target
Else
If target <> oldvalue Then

Cells(LastRow + 1, "C") = target
End If
End If
End If

End Sub
 

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