Home |
Search |
Today's Posts |
|
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Is it possible to run a certain macro if a cell does not have any
information in it? If it can be done how? Greg |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
You can use event code to trap if a cell becomes empty and run a macro, or
if something else on the sheet causes recalculation, then check that cell for empty and run the macro (but this could fire it many times). What exact situation do you want? -- HTH RP (remove nothere from the email address if mailing direct) "Greg" wrote in message ... Is it possible to run a certain macro if a cell does not have any information in it? If it can be done how? Greg |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
I wanted to run a userform once when this workbook is loaded for the first
time. I needed the user to place some information information in this form. Once this userform is used I did not want it to load up again. Not sure how to do this exactly though maybe it could look up the cell where this information would be placed. If empty run a macro and then once the form has been used it will have the information in the cell so it would not be run again. Thanks again any help is appreciated Greg |
#4
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Greg,
You could use workbook_open then, something like Private Sub Workbook_Open() If Worksheets("Sheet1").Range("A1") = "" Then Userform1.Show Worksheets("Sheet1").Range("A1") = "X" Else 'do something else End If End Sub 'This is workbook event code. 'To input this code, right click on the Excel icon on the worksheet '(or next to the File menu if you maximise your workbooks), 'select View Code from the menu, and paste the code -- HTH RP (remove nothere from the email address if mailing direct) "Greg" wrote in message ... I wanted to run a userform once when this workbook is loaded for the first time. I needed the user to place some information information in this form. Once this userform is used I did not want it to load up again. Not sure how to do this exactly though maybe it could look up the cell where this information would be placed. If empty run a macro and then once the form has been used it will have the information in the cell so it would not be run again. Thanks again any help is appreciated Greg |
#5
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Thanks I thought that could be the way to do that.
Thanks again Greg |
#6
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Greg,
Have you checked your clock, it is some 17-18 hours ahead. -- HTH RP (remove nothere from the email address if mailing direct) "Greg" wrote in message ... Thanks I thought that could be the way to do that. Thanks again Greg |
#7
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Thanks just what I needed to get my brain working
"Bob Phillips" wrote: Greg, You could use workbook_open then, something like Private Sub Workbook_Open() If Worksheets("Sheet1").Range("A1") = "" Then Userform1.Show Worksheets("Sheet1").Range("A1") = "X" Else 'do something else End If End Sub 'This is workbook event code. 'To input this code, right click on the Excel icon on the worksheet '(or next to the File menu if you maximise your workbooks), 'select View Code from the menu, and paste the code -- HTH RP (remove nothere from the email address if mailing direct) "Greg" wrote in message ... I wanted to run a userform once when this workbook is loaded for the first time. I needed the user to place some information information in this form. Once this userform is used I did not want it to load up again. Not sure how to do this exactly though maybe it could look up the cell where this information would be placed. If empty run a macro and then once the form has been used it will have the information in the cell so it would not be run again. Thanks again any help is appreciated Greg |
#8
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Greg,
Put the following in the ThisWorkbook code module: Private Sub Workbook_Open() On Error Resume Next Dim NameExists As Boolean If Me.Worksheets("SHeet1").Range("A1").Value = "" Then NameExists = CBool(Len(ThisWorkbook.Names("RunOnce").Name)) If NameExists = False Then UserForm1.Show ThisWorkbook.Names.Add Name:="RunOnce", RefersTo:="Yes" End If End If End Sub -- Cordially, Chip Pearson Microsoft MVP - Excel Pearson Software Consulting, LLC www.cpearson.com "Greg" wrote in message ... I wanted to run a userform once when this workbook is loaded for the first time. I needed the user to place some information information in this form. Once this userform is used I did not want it to load up again. Not sure how to do this exactly though maybe it could look up the cell where this information would be placed. If empty run a macro and then once the form has been used it will have the information in the cell so it would not be run again. Thanks again any help is appreciated Greg |
#9
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Greg,
"On Error Resume Next" is not a good programming practice. Also the code is over kill for what you want to do. You do not need to declare a bool and then cast the cells contents into another bool to compare to the declared bool. You only need to check to see if the cell has something in it. Put this code into the On_Click event on the Forms CommandButton1. If you want to validate what is entered on the form like numbers and such... you will have to add code to do that. Private Sub CommandButton1_Click() Worksheets(1).Cells(1, 1).Value = Me.TextBox1.Text ThisWorkbook.Save End End Sub Add the following code to the Workbook's On_Load event. I have added a simple error handler as well. You want to "handle erreors" not "ignore them". Private Sub Workbook_Open() On Error GoTo ErrorHandler If Worksheets(1).Cells(1, 1).Value = "" Then UserForm1.Show Modal End If Exit Sub ErrorHandler: MsgBox Err.Description End Sub Let me know if this helps. Bob Calvanese "Chip Pearson" wrote in message ... Greg, Put the following in the ThisWorkbook code module: Private Sub Workbook_Open() On Error Resume Next Dim NameExists As Boolean If Me.Worksheets("SHeet1").Range("A1").Value = "" Then NameExists = CBool(Len(ThisWorkbook.Names("RunOnce").Name)) If NameExists = False Then UserForm1.Show ThisWorkbook.Names.Add Name:="RunOnce", RefersTo:="Yes" End If End If End Sub -- Cordially, Chip Pearson Microsoft MVP - Excel Pearson Software Consulting, LLC www.cpearson.com "Greg" wrote in message ... I wanted to run a userform once when this workbook is loaded for the first time. I needed the user to place some information information in this form. Once this userform is used I did not want it to load up again. Not sure how to do this exactly though maybe it could look up the cell where this information would be placed. If empty run a macro and then once the form has been used it will have the information in the cell so it would not be run again. Thanks again any help is appreciated Greg |
#10
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Thanks for that
It works well too Greg |
#11
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]() "rcalvanese" wrote in message ... "On Error Resume Next" is not a good programming practice. That is far too general a statement. You want to "handle erreors" not "ignore them". In many cases, On Error Resume Next is helping to handle errors. For example On Error Resume Next Set sh = Worksheets("somename") On Error Goto 0 If sh Is Nothing Then Worksheets.Add.Name = "somename" End If |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Getting a macro to see the next available empty cell | Excel Discussion (Misc queries) | |||
macro to look for empty cell | Excel Discussion (Misc queries) | |||
Need help with empty cell in Macro | Excel Programming | |||
if cell empty hide row macro? | Excel Programming | |||
Make macro go to first empty cell in column? | Excel Programming |