Event to add a date if "X" is entered in a cell

J

JOSEPH WEBER

How do I modify this code to put a date in only if a capital x exists in the
adjacent cell?



Private Sub Worksheet_Change(ByVal Target As Excel.Range)
With Target
If .Count > 1 Then Exit Sub
If Not Intersect(Range("c2:c50000"), .Cells) Is Nothing Then
Application.EnableEvents = False
If IsEmpty(.Value) Then
.Offset(0, 1).ClearContents
Else
With .Offset(0, 1)
.NumberFormat = "mm/dd/yyyy"
.Value = Date
End With
End If
Application.EnableEvents = True
End If
End With
End Sub
 
M

Mike H

Hi,

Try this

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
With Target
If .Count > 1 Then Exit Sub
If Not Intersect(Range("c2:c50000"), .Cells) Is Nothing Then
Application.EnableEvents = False
If IsEmpty(.Value) Then
.Offset(0, 1).ClearContents
Else
If UCase(.Value) = "X" Then
With .Offset(0, 1)
.NumberFormat = "mm/dd/yyyy"
.Value = Date
End With
End If
End If
Application.EnableEvents = True
End If
End With
End Sub

Mike
 
M

Mike H

I misunderstood your requirement, try this instead

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
With Target
If .Count > 1 Then Exit Sub
If Not Intersect(Range("c2:c50000"), .Cells) Is Nothing Then
Application.EnableEvents = False
If IsEmpty(.Value) Then
.Offset(0, 1).ClearContents
Else
If .Value = "X" Then
With .Offset(0, 1)
.NumberFormat = "mm/dd/yyyy"
.Value = Date
End With
End If
End If
Application.EnableEvents = True
End If
End With
End Sub

Mike
 
P

Patrick Molloy

if you're not too worried about row number then

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
if Target.Column = 3 and Target="X" then
target.offset(,1).Resize(1,1)=Date
End Sub

....is nice and simple

you might want to include a .Count check like Mike did, if there's a
possibility of multiple cell entry
 

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