ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Write data inthe worksheet / array (https://www.excelbanter.com/excel-programming/391050-write-data-inthe-worksheet-array.html)

Robert[_33_]

Write data inthe worksheet / array
 

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.


Bob Phillips

Write data inthe worksheet / array
 

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)

"Robert" wrote in message
oups.com...

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.




joel

Write data inthe worksheet / array
 
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


"Robert" wrote:


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.




All times are GMT +1. The time now is 05:26 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com