A Microsoft Excel forum. ExcelBanter

If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below.

Go Back   Home » ExcelBanter forum » Excel Newsgroups » Excel Programming
Site Map Home Register Authors List Search Today's Posts Mark Forums Read Web Partners

***Challenging Pop-up excel box dealing with user information***



 
 
Thread Tools Display Modes
  #1  
Old July 14th 08, 08:04 PM posted to microsoft.public.excel.programming
TomPl
external usenet poster
 
Posts: 342
Default ***Challenging Pop-up excel box dealing with user information***

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

Ads
  #2  
Old July 14th 08, 08:22 PM posted to microsoft.public.excel.programming
Steve
external usenet poster
 
Posts: 1,814
Default ***Challenging Pop-up excel box dealing with user information*

Tom,

Thanks a lot! Formula works PERFECT!!

Steve


"TomPl" wrote:

> 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

  #3  
Old July 14th 08, 08:30 PM posted to microsoft.public.excel.programming
Steve
external usenet poster
 
Posts: 1,814
Default ***Challenging Pop-up excel box dealing with user information*

Tom,

One follow up question. Is it possible to automatically Fill Color the cell
that is changed from a formula to a number?

Steve

"TomPl" wrote:

> 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

  #4  
Old July 14th 08, 08:31 PM posted to microsoft.public.excel.programming
Steve
external usenet poster
 
Posts: 1,814
Default ***Challenging Pop-up excel box dealing with user information*

Just thought of another possibility (probably a better way to do it) Is it
possible that if the cell includes a validation box that it is automatically
fill colored?

Steve

"TomPl" wrote:

> 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

  #5  
Old July 14th 08, 09:58 PM posted to microsoft.public.excel.programming
TomPl
external usenet poster
 
Posts: 342
Default ***Challenging Pop-up excel box dealing with user information*

This should do it:

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
With Target.Interior
.ColorIndex = 44
.Pattern = xlSolid
End With
End If

"Steve" wrote:

> Tom,
>
> One follow up question. Is it possible to automatically Fill Color the cell
> that is changed from a formula to a number?
>
> Steve
>
> "TomPl" wrote:
>
> > 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

  #6  
Old July 14th 08, 10:01 PM posted to microsoft.public.excel.programming
TomPl
external usenet poster
 
Posts: 342
Default ***Challenging Pop-up excel box dealing with user information*

You could use language similar to my last response to set the color when you
set the validation.

Tom

"Steve" wrote:

> Just thought of another possibility (probably a better way to do it) Is it
> possible that if the cell includes a validation box that it is automatically
> fill colored?
>
> Steve
>
> "TomPl" wrote:
>
> > 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

  #7  
Old July 15th 08, 06:35 PM posted to microsoft.public.excel.programming
Steve
external usenet poster
 
Posts: 1,814
Default ***Challenging Pop-up excel box dealing with user information*

Hey Tom,

The formula you gave me is working great! One question. I'm making a small
alteration and I was wondering what is the color index # for "no color"? I
was playing around with it and 00 is white, but i couldn't find anything that
is no color (google searches weren't helping much either). Let me know if
you have any ideas.

Thanks Tom!

Steve

"TomPl" wrote:

> You could use language similar to my last response to set the color when you
> set the validation.
>
> Tom
>
> "Steve" wrote:
>
> > Just thought of another possibility (probably a better way to do it) Is it
> > possible that if the cell includes a validation box that it is automatically
> > fill colored?
> >
> > Steve
> >
> > "TomPl" wrote:
> >
> > > 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

  #8  
Old July 15th 08, 06:40 PM posted to microsoft.public.excel.programming
TomPl
external usenet poster
 
Posts: 342
Default ***Challenging Pop-up excel box dealing with user information*

Try:

Target.Interior.ColorIndex = xlNone

Tom

"Steve" wrote:

> Hey Tom,
>
> The formula you gave me is working great! One question. I'm making a small
> alteration and I was wondering what is the color index # for "no color"? I
> was playing around with it and 00 is white, but i couldn't find anything that
> is no color (google searches weren't helping much either). Let me know if
> you have any ideas.
>
> Thanks Tom!
>
> Steve
>
> "TomPl" wrote:
>
> > You could use language similar to my last response to set the color when you
> > set the validation.
> >
> > Tom
> >
> > "Steve" wrote:
> >
> > > Just thought of another possibility (probably a better way to do it) Is it
> > > possible that if the cell includes a validation box that it is automatically
> > > fill colored?
> > >
> > > Steve
> > >
> > > "TomPl" wrote:
> > >
> > > > 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

  #9  
Old July 15th 08, 06:43 PM posted to microsoft.public.excel.programming
Susan
external usenet poster
 
Posts: 1,106
Default ***Challenging Pop-up excel box dealing with user information***

TomPI - i agree with you (i wrote the original coding). unfortunately
whenever i tried to set a boolean value with the worksheet selection_
change, it wouldn't carry over to the worksheet_change sub. i tried
a public variable but i couldn't make it stick, so to speak. in a
userform i would have made an invisible checkbox or something to
use as a boolean value, so that's how i decided to use a worksheet
cell. how would you have handled a variable that would carry over
between
the subs?
thanks for any ideas

susan


On Jul 14, 3:04*pm, TomPl > wrote:
>
> 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.
>

  #10  
Old July 15th 08, 06:48 PM posted to microsoft.public.excel.programming
Steve
external usenet poster
 
Posts: 1,814
Default ***Challenging Pop-up excel box dealing with user information*

Tom,

Still shows as if white when using xlNone.

Not a big deal though, I can live with that. You have helped me out
greatly! Thanks again for your help!

Steve

"TomPl" wrote:

> Try:
>
> Target.Interior.ColorIndex = xlNone
>
> Tom
>
> "Steve" wrote:
>
> > Hey Tom,
> >
> > The formula you gave me is working great! One question. I'm making a small
> > alteration and I was wondering what is the color index # for "no color"? I
> > was playing around with it and 00 is white, but i couldn't find anything that
> > is no color (google searches weren't helping much either). Let me know if
> > you have any ideas.
> >
> > Thanks Tom!
> >
> > Steve
> >
> > "TomPl" wrote:
> >
> > > You could use language similar to my last response to set the color when you
> > > set the validation.
> > >
> > > Tom
> > >
> > > "Steve" wrote:
> > >
> > > > Just thought of another possibility (probably a better way to do it) Is it
> > > > possible that if the cell includes a validation box that it is automatically
> > > > fill colored?
> > > >
> > > > Steve
> > > >
> > > > "TomPl" wrote:
> > > >
> > > > > 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
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
User Form Information stockwell43 Excel Discussion (Misc queries) 4 March 2nd 09 01:16 PM
How I change user information in Excel 2007 so others know I have. Eric Excel Discussion (Misc queries) 1 September 22nd 08 10:13 PM
Ask user for information Aaron Excel Worksheet Functions 0 November 1st 06 12:48 AM
Macro to retrieve user information Randy Excel Programming 4 August 3rd 06 06:37 PM
Why is Excel so bad at dealing with user forms ? isn't this a major unresolved flaw ? Richard Finnigan Excel Programming 4 February 16th 06 07:21 PM


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


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.
Copyright ©2004-2013 ExcelBanter.
The comments are property of their posters.