Home |
Search |
Today's Posts |
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
In the "Else" part of you if statement you have "'do nothing".
Try replacing it with this: If Target.HasFormula Then With Target.Validation .Delete .Add Type:=xlValidateInputOnly, AlertStyle:=xlValidAlertStop, Operator _ :=xlBetween .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .InputMessage = "" .ShowInput = True .ShowError = True End With End If I think that will work. PS I don't like the use of cell iv1 as a variable. I would be inclined to use a public VBA variable in its place. "Steve" wrote: I'm not sure if this is possible, but I hope it is. I'm fairly new to working with VBA coding, but i'm sure someone is up to the challenge. Thanks! I have this code which is all most 100% what I'm looking for. only problem is I need what I hope will be a small adjustment/addition to it. Not sure where it needs to go though. Please help. Currently I have a code that when somebody goes in and overwrites a cell with a formula in it, a box pops up asking for their name and reason for overide. It then stores this information in a vaildation box. What I still need: What I need is a way to not have the vaildation box show up if a formula is put back in the cell. The reason is because the same spreadsheet is used each year. So every year there will be different cells that will be overidden. Currently when you go to put a formula back in the cell it keeps the validation box information from the change. I'm thinking there is 2 ways this can be done, but I really don't know. 1. make an adjustment to the code where if a formula is put into the cell the validation box disappears for that cell. (preferred way) 2. before putting a formula in the cell you must clear the cell of all numbers and formulas - which will then make the validation box disappear. Hope these ideas help. Your advice and help is greatly appreciated. Here is the current code I have. Option Explicit Private Sub Worksheet_Change(ByVal Target As Range) Dim sReason1 As String Dim sReason2 As String Dim sUser As String Dim dDate As Date Dim sStatus As String If ActiveSheet.Range("iv1").Value = 1 Then Application.EnableEvents = False sReason1 = InputBox("Enter Name (First, Last):") sReason2 = InputBox("Enter the reason for the override:") dDate = Date sUser = Environ("username") sStatus = "Date:" & dDate & " " & "Name:" & sReason1 & " " & "Reason:" & sReason2 With Target.Validation .Delete .Add Type:=xlValidateInputOnly, AlertStyle:=xlValidAlertStop, Operator _ :=xlBetween .IgnoreBlank = True .InCellDropdown = True .InputTitle = sUser .ErrorTitle = "" .InputMessage = sStatus .ErrorMessage = "" .ShowInput = True .ShowError = True End With Else 'do nothing End If Application.EnableEvents = True End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.HasFormula Then Application.EnableEvents = False ActiveSheet.Range("iv1").Value = 1 Else ActiveSheet.Range("iv1").Value = 0 End If Application.EnableEvents = True End Sub |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
User Form Information | Excel Discussion (Misc queries) | |||
How I change user information in Excel 2007 so others know I have. | Excel Discussion (Misc queries) | |||
Ask user for information | Excel Worksheet Functions | |||
Macro to retrieve user information | Excel Programming | |||
Why is Excel so bad at dealing with user forms ? isn't this a major unresolved flaw ? | Excel Programming |