Handling Blank Input Box
Dec 27, 2008handling blank input box
If I do this:
handling blank input box
If I do this:
I need to:Turn off "save" and "save as" command barsPrompt user for a unique filename Save file to a specific directory on the network common to all "p:dataprc"Requery user if filename exists and if they DON'T want to overwrite.Return to worksheet (there is only one) if the user cancels from the message box.Turn commandbars back on The macro runs from an on screen button
I get bug errors on NO or CANCEL when clicked in the message box. This is my current
Private Sub Workbook_Open()
Application.CommandBars("Worksheet Menu Bar").Controls("File").Controls("Save As...").Enabled = False
Application.CommandBars("Worksheet Menu Bar").Controls("File").Controls("Save").Enabled = False
End Sub
Sub SaveMe()
'
' Keyboard Shortcut: Ctrl+z
'
Dim BaseDir As String
Dim NewName As String
BaseDir = "p:dataprc" ...........
When I enter this formula I get a #VALUE! error. I think it's because cell AG46 has an IF formula that results in "blank" if 0. How do I fix this error so that it includes cell AG46 and if cell AG46 is blank it counts it as a zero?
=SUM(A12)-(AG46*8)(=40 is the answer I'm looking for)
=SUM(40)-(0*8)
I have a form on a separate tab where I input data then have a button that should update the data to a separate tab. Using the code snippet below, on a blank sheet it works but on the second input it ends and the next record input overwrites the second line and all subsequent input does the same. It basically stops at line two.
Code:
Sub Button7_Click()
Dim DateRecvd As Date, OccurDate As Date, SalesLine As String, OwnerLName As String, OwnerFName As String, RepID1 As Integer, RepID2 As Integer, MgrName As String, QAName As String, ContractNbr As String, Policy1 As Integer, Policy2 As Integer, Policy3 As Integer, Policy4 As Integer, Policy5 As Integer, Summary As String, ActionTaken As String, Outcome As String, Volume As Long, SiteNote As String
[Code]...
The Clear Form is used after entering a record and it works fine. I tried a few different things I found online but no luck, it always goes back to the second line and won't advance to the next empty row.
Running excel 2003 and would like to make a macro for a workbook. Example I want a macro to say (see the big truck), I can record this ok but can't get it too play in any cell on my workbook. I want too be able and input this in any blank cell on the workbook. Is this possible? when I try this I just get nothing in the cell.
View 2 Replies View RelatedData range is A2:A301. From this range sometime all and sometime selected data is required to be copied in another column for example C2
downward. What is needed: select the range from A2:A301 with an input box then the required data to be pasted in C2 downward but with a blank cell after four cells.
C2
C3
C4
C5
blank
C7
C8
C9
C10
blank
and so on.
I'm doing it Ctrl+C n Ctrl+V but that is very time consuming.
I have a userform with 16 Textboxes Named "Text1" through "Text16". What I am trying to do is apply code that if there is content in the textbox it generates a new row after row15 and inputs the text in cellA of that row. Ex. "Text1" = JOE "Text2" = TONY......Hit Commandbutton1 on userform. It inserts Row16 puts "JOE" in A16.....then sequentially it inserts Row17 puts "TONY" in A17.
View 14 Replies View RelatedRather than having to give it a range, I'd like to have a generic range giving me room to add or subtract values in the column without changing this statement.
Code:
Worksheets("Sheet1").Shapes("Combobox2").ControlFormat.ListFillRange = _
"O2:O14"
I have a user form that has a combo box "City" two text boxes one called "Flight" and the other "Date". What I'm trying to do is to prevent the user from saving the data input from the user form if any of those three fields is left blank. The code that I have so far checks all of the required fields, if any are left blank a message notifys which field(s) is left blank and return the focus back to that field. But the rest of code also fires.
What I really need is either to stop the code if any fields are blank and return the focus back to the blank field, the user completes the field(s) and clicks the save again, or better yet, pause the code until all the required fields are completed and then complete the save. (There is actually another 200+ lines of code in this sub, but I deleted it to keep the post a little shorter.)
I am looking for a Macro that will search a column for blank cells, and when one is found will add text to the same row in another column. For example: The below is a spreadsheet. I am trying to find something that will search through column "C" in this case and add text (of my choice) to Column "A" if the cell is Blank. So Since cell C1 is Blank then Type "ERROR" is cell A1.
A B C D E
1 X X X X
2 X X X X
3 X X X X X
4 X X X X
5 X X X X
I'm currently working on that requires me to compare and update between two different workbooks, "MyData" and "Daily".
As the names imply the first is an ongoing database the second "Daily" is upto date information that arrives each morning. In both workbooks there is a column that contains unique data/serial number.
I have written some code that compares these numbers, if they are the same the new upto date information overwrites the original information (replaces entire row), if the serial number is new it adds it as a new entry in the last row.
Well so far so good, actually I have only managed to do this on the same worksheet, but it does work.
As there is a lot of data I'm looking for the fastest way to "look" for this information should I compare between the two open workbooks line by line, should I copy all of the data from the "Daily" to a worksheet in "MyData" and work from there.
My current code opens a file ("Report01.CSV") from the directories in column A (one at a time), and copies data into sheet 2.
The problem is that sometimes there is no ("Report01.CSV") file in one or more of the directories.
What I would like to add is an error handler that would remove the directory (delete that cell) that caused the error and continue with the loop. I.e. resume importing data from the other directories.
CODE:
Dim wrkMyWorkBook As Workbook
Dim lngRow As Long: lngRow = 1
Dim lngColumn As Long: lngColumn = 2
Do Until Sheets("Sheet1").Range("A" & lngRow).Value = vbNullString
Set wrkMyWorkBook = Workbooks.Open(Filename:=Sheets("Sheet1").Range("A" & lngRow).Value & "" & "REPORT01.CSV")
lngRow = lngRow + 1
[Code] ......
My worksheet takes a time feed in the format '00:01:05' and I want to trigger an event when it goes to negative (eg, -00:01:05). But I have no idea how to handle it.
View 9 Replies View RelatedI am trying to handle an error. It works the first time but when it runs in the same error again it does not go to the error handling.
[Code].....
The On Error GoTo works if there is only one instance of the text not being found but crashes if there is a second.
I have tried adapting code found here http://www.excelforum.com/excel-prog...ght=cells.find but can't get it to work exactly as i would like.
Here is an extract of my code. There are about 12 different cells.find in total.
The issue I'm having is with the ActiveX Spin Button (in 2007, formerly in the Control toolbox in 2003). I need the Spin Button to call a certain macro whenever it is clicked up or down. I know how to do this with one spin button, the problem is that the workbook I'm creating could potentially have dozens (or even hundreds) of these spin buttons that all need to call the same macro. It doesn't seem feasible to have to create separate Change event functions for each of these.
My company used to use the simpler form controls for this process, but a situation has come up where we need the ability to make the buttons invisible, or at least appear disabled, and that doesn't seem doable with the form controls.
So my question is, is there a way to specify in my workbook that whenever a spin button is clicked, this particular macro is to be called? Or even, whenever an ActiveX object is clicked, call the macro, because the spin buttons will be the only ActiveX objects in the workbook. I've read a bit about how to create global event handlers for worksheets and workbooks, but I can't find anything related to spin buttons specifically.
I have attached a sample spreadsheet. I'm looking for a macro that will take column one which contains Company names which are sometimes duplicated and append an incremental number based on the number of occurrences to the end of the company forcing it to be unique. Column 2 has the example of the results I would like to see. Has anyone got a macro that I could use that would allow me to select the company column, run the macro, and it update the values in that column to append the incremental number?
View 3 Replies View RelatedIn my current project, I have set up a worksheet with 15 comboboxes (dropdown lists).
To trigger change events, I use :
Private Sub ComboBox1_Change()
....
End Sub
So, I have 15 such routines defined to cover all comboboxes. By doing so, my code becomes quite large
I am wondering if there is not a more efficient way to handle this.
I recorded a macro to save a worksheet as a PDF file
It works fine, except when the PDF file is already open - Excel returns an error message and stops.
Can I use some error handling code to prevent the error, maybe bring up a msgbox and exit the sub at the point where the error occurs?
The part of the code where it stops is:
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:UsersDaveDesktopTestingDemo List.pdf", Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=False
I am writing a code in VBA using getpivotdata function. It is working fine untill the value does not exist.
Dim pt As PivotTable
Sheets("Pivot2").Select
Set pt = ActiveSheet.PivotTables(1)
Cells(2,1).Value = pt.GetPivotData("ID", "GCB", "1", "Gender", "F", "9 box Rating_2012", NBArr(k)).Value
'the code is looping through the values in an array called NBArr
I have tried to handle this as follows:
If IsError(pt.GetPivotData("ID", "GCB", GCB1, "Gender", Gen1, "9 box Rating_2012", NBArr(k)).Value) = True Then
Cells(2,1).Value= "0"
ElseIf IsError(pt.GetPivotData("ID", "GCB", GCB1, "Gender", Gen1, "9 box Rating_2012", NBArr(k)).Value) = False Then
Cells(2,1).Value = pt.GetPivotData("ID", "GCB", GCB1, "Gender", Gen1, "9 box Rating_2012", NBArr(k)).Value
End If
However, even this is not working (in case when the function finds no value).
I'm looking for some direction with enhancing this code:
Code:
Case "L18"
Dim dfcust As String
Dim wshgrp As Worksheet
[Code]...
With this code, wshmain.range("Y18") is populated with the value associated with the vlookup. However, problems exist when the vlookup fails. If the vlookup fails, I don't want to try to populate wshmain.range, just simply .protect and abandon.
I am working on a worksheet with quite a few advisors who will be using the sheet, because of this reason I am trying to cover my back with as much error handling with my VBA script as possible. Where I am struggling is the following line:
Code:
Set cb = Workbooks.Open("wilm-dchome"UserName"DesktopCurrent projectPipeline Grouped.xlsm")
I want to have an error handler that says if this file cannot be found use the following line of code instead:
Code:
Set cb = Workbooks.Open(Application.GetOpenFilename())
It may even be just a simple if statement instead but I cant seem to find the answer.
As part of my requirement, i'm trying to update some data into share path. While trying to access the share path, i'm being asked to key-in appropriate username & password. Windows alert will be opened when my code try to access share path, there I have to enter username & password using script.
Is there any way achieve this using VBA?
In an error handling procedure, I want to be able to capture the name of the Module and Sub procedure (macro) that the error has occurred in.
Is there any way to do this, outside of storing the name of the Sub somehow in a variable?
The Err.Source method seems to only contain very broad information, such as "VBA Project" when an error is encountered.
If there are records meeting the criteria are found, they are to be copied to a 2nd worksheet. Otherwise, the remainder of the code is to be executed.
I am getting an error "No Cells were found" (which is true since the autofilter doesn't net any results) with the line highted in red.
Consider this snippit of
'
' courts
'
Courts:
Dim lcrtcopy As Long
End_RowDest = 0
wshV.Activate
ActiveSheet.Unprotect
With Worksheets("Crts_Temp")
If .FilterMode Then .ShowAllData 'disable advanced filter of data if applicable
End With..........
I've got some code that reformats a file that a supplier sends us. They seem to randomly change the structure, so I'm trying to make the code a bit more robust.
Part of the code uses MATCH to look for specific column headings, so I've got some error handling around this of the format:
On Error GoTo NoIncCol
Line using MATCH
On Error GoTo Exiting
where Exiting is my standard error handling (Close without Save) and NoIncCol is the same, but with an error message saying that the term the code was trying to MATCH can't be found. This works well for me.
In another part of the code, I need to check for another column heading, which so far has turned up in two different forms. At the moment I'm doing this as follows:
With Sheets("Sheet1").Range("1:1")
Set rFound = .Find("Term1")
If Not rFound Is Nothing Then
a = "Term1"
Else
This feels a bit clunky, and I don't really like having what is essentially error-handling in the middle of my code. But the only other way I can think of to do it is to use a GoTo, and I believe that's not really considered good practice either.
I am creating a rather large system that is as OOP as I am able to with VBA (Please let the next version of VBA use .NET!).
I have created an ErrorHandler object that deals with all logic/user errors and I have decided to include runtime errors in it's scope as well.
Now I have an object function to catch all errors as such:
Public Function CatchAll(E As ErrObject)
Select Case E.Number
Case xxx
...
Case Else
MsgBox E.Number & ": " & E.Description & vbCrLf & E.Source
End Select
End Function
Now I have added the following to every single procedure and function in my application, and have realised how ridiculous it is.
On Error Goto ErrorHandling
...
ErrorHandling:
ErrorHandler.Catchall Err
Is there a way to add a single global ErrorHandling statement somewhere in my code that will be called whenever an error is raised?
Perhaps in my main module that fires all code, can I put a small procedure that will handle the errors? Or as a function in my ErrorHandler class that I call on initialisation?
I have a UserForm (and associated code) to locate a specific entry in Column 'A' of a spreadsheet and insert a date, initials, and hyperlink to another file.
The basic code works fine, but did not account for the user entering a Job# that was not in the system, so I added an If/Else to account for this...
The additional code took the If (Job# not found) route every time...
Following many hours of searching this site and variations of the error handling code, I still can not get it to work.
So I'm asking for your assistance to point out why the error handling (based on other successful code found here) is not working for me.
'Insert Link
Private Sub CommandButton3_Click()
If TextBox1.Value = "" Then
MsgBox "Please Insert a Job#"
Exit Sub
ElseIf TextBox2.Value = "" Then
MsgBox "Please Insert Quoters Initials"
Exit Sub
ElseIf TextBox3.Value = "" Then
MsgBox "Please Insert Quote Date"
Exit Sub
The 'Find' part of the code is working, as the correct cell is selected after running the code... but it gives the error message, instead of executing the rest of the code...
If I remove the 'On Error Resume Next', it stops on the find block, where on inspection FindR = Nothing.
So if FindR does = Nothing, how did it manage to select the cell?
I am having trouble working through the examples given on other posts for this topic. I have a userform that creates a number of controls at runtime. One group of controls is a series of textboxes and a label underneath that sums the values of the textboxes. When a user changes the value in a textbox the label needs to update the sum. I have read about created class modules to define the event but it is all going over my head.
A piece of the code that creates the controls is:
I'm trying to add a little error handling in my code. I have a macro that, when running opens a number of workbooks. At the end of the macro, my code then closes all the workbooks I've opened.
I was wanting to create an error-handling procedure that displayed a message box, and then closed any workbooks that I've opened during the course of the macro. Obviously the error could trigger at any point, so not all workbooks may have been opened at the time
My code is as follows - I've tried On Error Resume Next in the error-handling code, but Excel still returns an error that it can't find the Incidents_MTD sheet when trying to close it.
Code:
On Error GoTo ReportError
code
code
code
ReportError:
[Code].....