ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Enter Text in Cell on Click (https://www.excelbanter.com/excel-programming/351584-enter-text-cell-click.html)

Steven Drenker[_7_]

Enter Text in Cell on Click
 
I want to be able to do the following:
1. Click in a cell inside a named range ("DNS_zones_selection") and have "x"
entered into the clicked cell.
2. If the cell already has an entry, it should be erased.
3. You should be able to toggle the cell contents on and off by repeatedly
clicking on the same cell without clicking another cell.

The following code meets #1 and #2 above as long as you click in the target
cell, then click outside the target cell, then click back in the target
cell.

Is there a way to achieve all three goals without having to first click
outside the range?


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If InRange(Target, Range("DNS_zones_selection")) Then
Select Case Target.Text
Case ""
Target.Value = "x"
Case Else
Target.Value = ""
End Select
End If
End Sub

Private Function InRange(rng1, rng2) As Boolean ' courtesy John Walkenbach,
"Excel 2000 Power Programming," Ch. 11, "in range.xls"
' Returns True if rng1 is a subset of rng2
InRange = False
If rng1.Parent.Parent.Name = rng2.Parent.Parent.Name Then
If rng1.Parent.Name = rng2.Parent.Name Then
If Union(rng1, rng2).Address = rng2.Address Then
InRange = True
End If
End If
End If
End Function


Dave Peterson

Enter Text in Cell on Click
 
Have you thought about using the Worksheet_BeforeDoubleClick or
Worksheet_BeforeRightClick. You could use one to toggle on/off or you could use
both--one to put the X and one to clear the X.



Steven Drenker wrote:

I want to be able to do the following:
1. Click in a cell inside a named range ("DNS_zones_selection") and have "x"
entered into the clicked cell.
2. If the cell already has an entry, it should be erased.
3. You should be able to toggle the cell contents on and off by repeatedly
clicking on the same cell without clicking another cell.

The following code meets #1 and #2 above as long as you click in the target
cell, then click outside the target cell, then click back in the target
cell.

Is there a way to achieve all three goals without having to first click
outside the range?

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If InRange(Target, Range("DNS_zones_selection")) Then
Select Case Target.Text
Case ""
Target.Value = "x"
Case Else
Target.Value = ""
End Select
End If
End Sub

Private Function InRange(rng1, rng2) As Boolean ' courtesy John Walkenbach,
"Excel 2000 Power Programming," Ch. 11, "in range.xls"
' Returns True if rng1 is a subset of rng2
InRange = False
If rng1.Parent.Parent.Name = rng2.Parent.Parent.Name Then
If rng1.Parent.Name = rng2.Parent.Name Then
If Union(rng1, rng2).Address = rng2.Address Then
InRange = True
End If
End If
End If
End Function


--

Dave Peterson

Tom Ogilvy

Enter Text in Cell on Click
 
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim rng as Range
set rng = Intersect(Target,Range("DNS_zones_selection"))
If Not rng is Nothing Then

Select Case rng(1).Text
Case ""
rng(1).Value = "x"
Case Else
rng(1).Value = ""
End Select
Application.EnableEvents = False
rng(1).offset(0,1).Select
Application.EnableEvents = True
End If
End Sub

--
Regards,
Tom Ogilvy

--
Regards,
Tom Ogilvy


"Steven Drenker" wrote in message
news:BFFE7798.13D0EF%sdrenkerNOSPAM@SPAMNOpacbell. net...
I want to be able to do the following:
1. Click in a cell inside a named range ("DNS_zones_selection") and have

"x"
entered into the clicked cell.
2. If the cell already has an entry, it should be erased.
3. You should be able to toggle the cell contents on and off by repeatedly
clicking on the same cell without clicking another cell.

The following code meets #1 and #2 above as long as you click in the

target
cell, then click outside the target cell, then click back in the target
cell.

Is there a way to achieve all three goals without having to first click
outside the range?


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If InRange(Target, Range("DNS_zones_selection")) Then
Select Case Target.Text
Case ""
Target.Value = "x"
Case Else
Target.Value = ""
End Select
End If
End Sub

Private Function InRange(rng1, rng2) As Boolean ' courtesy John

Walkenbach,
"Excel 2000 Power Programming," Ch. 11, "in range.xls"
' Returns True if rng1 is a subset of rng2
InRange = False
If rng1.Parent.Parent.Name = rng2.Parent.Parent.Name Then
If rng1.Parent.Name = rng2.Parent.Name Then
If Union(rng1, rng2).Address = rng2.Address Then
InRange = True
End If
End If
End If
End Function





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

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