Tracking newly entered rows.

G

Guest

Currently I have a sheet which contains data in columns A-Q, I have added
some code in WorkSheet_Change to track any changes in the existing data, this
same code is currently telling me that a newly entered row of data has been
changed which is technically correct but I'd rather have it tell me that the
row is a new row rather than changed. Code I'm using is:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim iRow As Integer
If Not Intersect(Target, Range("A:Q")) Is Nothing Then
iRow = Target.Row
Cells(iRow, 19).Value = "Changed!"
End If
End Sub

Currently this puts "Changed!" in column S, if any new code means using yet
another column that would be okay too. It would be cool if it remained in
the same column though.

Ideas or suggestions?

Thanks,

Larry
 
T

Tyla

Larry,

One thing to try is to create a module-level variable -- or a
Public one if you want to use it elsewhere in your code -- and compare
the current value of it to the Target.row. If Target.row is higher,
it's a new row. Use the worksheet.activate event to initialize the
value (or workbook.open, particularly if you're using a public
variable) by setting it to the last used row on the sheet. Finding the
last used row is a whole separate topic because of how Excel
"remembers" things, but simplistically something like this should get
you started:
dLastCurrentRow = ActiveCell.SpecialCells(xlLastCell).Row

HTH
/ Tyla /
 
G

Guest

Thanks Tyla, though I just thought of another twist in things. Sometimes
they will copy an entire row and insert it into the sheet and then modify the
different cells rather than inserting a blank row. This is getting more
complicated than I originally thought so I'm going to have to rethink the
whole concept now. I will keep your idea in mind, it's a good one just not
sure it's going to handle my situation now.

Thank you,

Larry
 
T

Tyla

Larry,

Life would be so much easier without creative users -- but a lot
less fun.

/ Tyla /
 

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

Top