Home |
Search |
Today's Posts |
|
#1
Posted to microsoft.public.excel.programming
|
|||
|
|||
Need to modify code
I am using the following code to track when i make a change to a cell value.
It works great but i need to make a modification i dont know how to do. If i type a value in any cell in the range of D9:D374, the date gets populated. If i copy and paste a value in to that range, the date is not populated. I need it to be able to work with the copy/paste. Any help would be greatly appreciated. Private Sub Worksheet_Change(ByVal Target As Excel.Range) With Target If .Count 1 Then Exit Sub If Not Intersect(Range("D9:D374"), .Cells) Is Nothing Then Application.EnableEvents = False With .Offset(0, 9) '.NumberFormat = "dd mmm yyyy hh:mm:ss" .Value = Date End With End If Application.EnableEvents = True End With End Sub |
#2
Posted to microsoft.public.excel.programming
|
|||
|
|||
Need to modify code
Hi
When pasting then target may be multiple cells. Your code exits if target.count is 1. Try something like Private Sub Worksheet_Change(ByVal Target As Excel.Range) Dim Cel as Range For each Cel in Target If Not Intersect(Range("D9:D374"), .Cel) Is Nothing Then Application.EnableEvents = False With Cel.Offset(0, 9) '.NumberFormat = "dd mmm yyyy hh:mm:ss" .Value = Date End With End If Next HTH. Best wishes Harald "Greg H." wrote in message ... I am using the following code to track when i make a change to a cell value. It works great but i need to make a modification i dont know how to do. If i type a value in any cell in the range of D9:D374, the date gets populated. If i copy and paste a value in to that range, the date is not populated. I need it to be able to work with the copy/paste. Any help would be greatly appreciated. Private Sub Worksheet_Change(ByVal Target As Excel.Range) With Target If .Count 1 Then Exit Sub If Not Intersect(Range("D9:D374"), .Cells) Is Nothing Then Application.EnableEvents = False With .Offset(0, 9) '.NumberFormat = "dd mmm yyyy hh:mm:ss" .Value = Date End With End If Application.EnableEvents = True End With End Sub |
#3
Posted to microsoft.public.excel.programming
|
|||
|
|||
Need to modify code
When i try this i get the error Compile Error: Invalid or unqualified
reference. Any ideas? "Harald Staff" wrote: Hi When pasting then target may be multiple cells. Your code exits if target.count is 1. Try something like Private Sub Worksheet_Change(ByVal Target As Excel.Range) Dim Cel as Range For each Cel in Target If Not Intersect(Range("D9:D374"), .Cel) Is Nothing Then Application.EnableEvents = False With Cel.Offset(0, 9) '.NumberFormat = "dd mmm yyyy hh:mm:ss" .Value = Date End With End If Next HTH. Best wishes Harald "Greg H." wrote in message ... I am using the following code to track when i make a change to a cell value. It works great but i need to make a modification i dont know how to do. If i type a value in any cell in the range of D9:D374, the date gets populated. If i copy and paste a value in to that range, the date is not populated. I need it to be able to work with the copy/paste. Any help would be greatly appreciated. Private Sub Worksheet_Change(ByVal Target As Excel.Range) With Target If .Count 1 Then Exit Sub If Not Intersect(Range("D9:D374"), .Cells) Is Nothing Then Application.EnableEvents = False With .Offset(0, 9) '.NumberFormat = "dd mmm yyyy hh:mm:ss" .Value = Date End With End If Application.EnableEvents = True End With End Sub |
#4
Posted to microsoft.public.excel.programming
|
|||
|
|||
Need to modify code
This line has an extra dot
If Not Intersect(Range("D9:D374"), .Cel) Is Nothing Then change it to If Not Intersect(Range("D9:D374"), Cel) Is Nothing Then -- HTH... Jim Thomlinson "Greg H." wrote: When i try this i get the error Compile Error: Invalid or unqualified reference. Any ideas? "Harald Staff" wrote: Hi When pasting then target may be multiple cells. Your code exits if target.count is 1. Try something like Private Sub Worksheet_Change(ByVal Target As Excel.Range) Dim Cel as Range For each Cel in Target If Not Intersect(Range("D9:D374"), .Cel) Is Nothing Then Application.EnableEvents = False With Cel.Offset(0, 9) '.NumberFormat = "dd mmm yyyy hh:mm:ss" .Value = Date End With End If Next HTH. Best wishes Harald "Greg H." wrote in message ... I am using the following code to track when i make a change to a cell value. It works great but i need to make a modification i dont know how to do. If i type a value in any cell in the range of D9:D374, the date gets populated. If i copy and paste a value in to that range, the date is not populated. I need it to be able to work with the copy/paste. Any help would be greatly appreciated. Private Sub Worksheet_Change(ByVal Target As Excel.Range) With Target If .Count 1 Then Exit Sub If Not Intersect(Range("D9:D374"), .Cells) Is Nothing Then Application.EnableEvents = False With .Offset(0, 9) '.NumberFormat = "dd mmm yyyy hh:mm:ss" .Value = Date End With End If Application.EnableEvents = True End With End Sub |
#5
Posted to microsoft.public.excel.programming
|
|||
|
|||
Need to modify code
Good catch ... now one more request, can this new code be combined to update
regardless if you copy/paste or manually type a value. Right now with the new code it only updates if it is copy/paste. Thanks for being patient with me. "Jim Thomlinson" wrote: This line has an extra dot If Not Intersect(Range("D9:D374"), .Cel) Is Nothing Then change it to If Not Intersect(Range("D9:D374"), Cel) Is Nothing Then -- HTH... Jim Thomlinson "Greg H." wrote: When i try this i get the error Compile Error: Invalid or unqualified reference. Any ideas? "Harald Staff" wrote: Hi When pasting then target may be multiple cells. Your code exits if target.count is 1. Try something like Private Sub Worksheet_Change(ByVal Target As Excel.Range) Dim Cel as Range For each Cel in Target If Not Intersect(Range("D9:D374"), .Cel) Is Nothing Then Application.EnableEvents = False With Cel.Offset(0, 9) '.NumberFormat = "dd mmm yyyy hh:mm:ss" .Value = Date End With End If Next HTH. Best wishes Harald "Greg H." wrote in message ... I am using the following code to track when i make a change to a cell value. It works great but i need to make a modification i dont know how to do. If i type a value in any cell in the range of D9:D374, the date gets populated. If i copy and paste a value in to that range, the date is not populated. I need it to be able to work with the copy/paste. Any help would be greatly appreciated. Private Sub Worksheet_Change(ByVal Target As Excel.Range) With Target If .Count 1 Then Exit Sub If Not Intersect(Range("D9:D374"), .Cells) Is Nothing Then Application.EnableEvents = False With .Offset(0, 9) '.NumberFormat = "dd mmm yyyy hh:mm:ss" .Value = Date End With End If Application.EnableEvents = True End With End Sub |
#6
Posted to microsoft.public.excel.programming
|
|||
|
|||
Need to modify code
Any help on the below question?
"Greg H." wrote: Good catch ... now one more request, can this new code be combined to update regardless if you copy/paste or manually type a value. Right now with the new code it only updates if it is copy/paste. Thanks for being patient with me. "Jim Thomlinson" wrote: This line has an extra dot If Not Intersect(Range("D9:D374"), .Cel) Is Nothing Then change it to If Not Intersect(Range("D9:D374"), Cel) Is Nothing Then -- HTH... Jim Thomlinson "Greg H." wrote: When i try this i get the error Compile Error: Invalid or unqualified reference. Any ideas? "Harald Staff" wrote: Hi When pasting then target may be multiple cells. Your code exits if target.count is 1. Try something like Private Sub Worksheet_Change(ByVal Target As Excel.Range) Dim Cel as Range For each Cel in Target If Not Intersect(Range("D9:D374"), .Cel) Is Nothing Then Application.EnableEvents = False With Cel.Offset(0, 9) '.NumberFormat = "dd mmm yyyy hh:mm:ss" .Value = Date End With End If Next HTH. Best wishes Harald "Greg H." wrote in message ... I am using the following code to track when i make a change to a cell value. It works great but i need to make a modification i dont know how to do. If i type a value in any cell in the range of D9:D374, the date gets populated. If i copy and paste a value in to that range, the date is not populated. I need it to be able to work with the copy/paste. Any help would be greatly appreciated. Private Sub Worksheet_Change(ByVal Target As Excel.Range) With Target If .Count 1 Then Exit Sub If Not Intersect(Range("D9:D374"), .Cells) Is Nothing Then Application.EnableEvents = False With .Offset(0, 9) '.NumberFormat = "dd mmm yyyy hh:mm:ss" .Value = Date End With End If Application.EnableEvents = True End With End Sub |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
help modify code | Excel Programming | |||
Modify existing code to dynamic code | Excel Programming | |||
almost there ... code modify help | Excel Programming | |||
Modify code in UDF | Excel Programming | |||
Help me modify this VBA code please: | Excel Programming |