Stopping A Routine In A 'before Save' Environment
Feb 15, 2007
I've wriiten the following routine :
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
' Unhides all columns prior to saving
ActiveSheet. Unprotect password:="test"
Cells.Select
Selection.EntireColumn.Hidden = False
Range("A1").Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, password:="test"
Response = MsgBox("Have you considered all the items on the checklist?", vbYesNo)
If Response = vbYes Then
Go_To_Checkbox
I want the routine to stop without saving (after running Go_To_Checkbox) if the answer to "Have you ticked the checklist checkbox?" is 'No'. I know the 'Stop' function will do it but I just want to exit the routine without saving, rather than the routine stopping and calling up the Visual Basic editor.
View 3 Replies
ADVERTISEMENT
Jun 16, 2009
1. Are the Workbook Environment and the VBE environment simply two different forms? Meaning, when I press alt+F11, am I just switching between 2 default forms?
2. Is Excel itself written in VBA? And if it's written in VB or C, which would make more sense, is the GUI side of things written in VBA?
The reason I ask is pretty simple. I really love the way the Workbook environment and the VBE environment are set up. I want to use them as models for my own forms. Both environments seem little more than two very complex forms. And I want to replicate so much about them.
3. But is it possible to replicate anything I see as part of these environments in my own forms?
For instance, what is the VBE Project window? Is it a ListBox? I need to code a form that does something very similar to the way it groups and collapses Projects and their sub-groups like Microsoft Objects, Sheets, ThisWorkbook, etc. I've used grouping to make rows and columns collapsible. But never items in a ListBox... But am I right to assume that I can do so, just because Excel's environment does it? Meaning, can it be assumed that anything I see Excel doing itself, a talented programmer can replicate in forms of his own?
View 3 Replies
View Related
Oct 17, 2013
Here's an array I have that is filled with values that come from a worksheet. I'd like to have it so that once this array is full the code that fills it up (see below) gets skipped on subsequent runs of the subroutine. What's a good way to do this? Seems like when I Dim the Array it gets blanked.
Code:
'Fill Bulb Array with House number (j) and Bulb Wattages
j = 1
Do While j
View 3 Replies
View Related
May 31, 2012
The following code stops at the red line with "Method 'SaveAs' of object '_Workbook' failed.
FF="xlCSV". It works fine if I replace
Code:
FileFormat:=FF
with
Code:
FileFormat:=xlCSV
Code:
Sub SaveIt(FileNm, FF)
Dim FSO As Object, a
Set FSO = CreateObject("Scripting.FileSystemObject")
If FSO.FileExists(FileNm) Then FSO.DeleteFile FileNm
If FSO.FileExists(FileNm) Then
[code]....
View 2 Replies
View Related
Feb 22, 2007
I am in the process of re-building a major project due to bugs. In the process, I plan to re-organize my sub-routine grouping within modules. In the source file, I have 18 standard modules, with 10-30 routines in each one.
What I would like is a printout of each routine name and which module it resides in, so I can check off each one as I copy it and paste it into the new file. I see that I can get a psuedo tree-view of my project in th eObject Browser, but can't figure out how to print that.
View 9 Replies
View Related
Feb 1, 2006
I have searched the forum several way to resolve my issue and the only solutions were as follows:
PHP
Public Function UserName()UserName = Environ("username")UserName = Computer("UserName")End FunctionOption ExplicitFunction NetworkUserName() As StringDim responseNetworkUserName = Environ("Username")End Function
Problem is that I get a #REF! and #NAME? instead of the user names
I am using Excel 2000 (I can not upgrade, Government PC) plus we need it to support Excel 2000 - present versions.
View 13 Replies
View Related
Feb 14, 2010
I found this code and maybe I'm almost there. I need to get the value of the Environment variable called HOME if it exists.
These macros collect all the environemnt variabes into an array and then show them in a messabe box.
View 3 Replies
View Related
Aug 27, 2008
I'm having difficulty allowing my macro to run in a more global environment with varying data-set lengths.
For example:
Though the following "copy" scenario works for me when my data set is contained within cells B2:B35:
Range("A2:A35").Select
Selection.Copy
It does not allow me to work with a set of data that extends beyond this--say to B50 or B60. Is there any way to allow this command, and others, to be a bit more flexible with my data set lengths?
View 9 Replies
View Related
Sep 30, 2013
Is there a way that formula links in spreadsheets can use environment variables to reference formulas in other spreadsheets/addins?
For example, I have a spreadsheet that imports templates which call functions in an addin. The spreadsheet, templates and the addin could be installed into either the 'Program Files' or the 'Program Files (x86)' folders.
I am experiencing issues with the formula references when moved between 32 and 64 bit computers since Excel seems to store the full path of the addin in the Excel formula (even though it hides it when the reference resolves its path) in my templates. I would like to update the references in my templates so that they use an environment variable (set by my software installer) to always know the correct path of the addin.
In Excel 2003, spreadsheet links are edited via: 'Edit'->'Links'
In Excel 2007 and higher,'Data'->'Edit Links'
View 1 Replies
View Related
Jul 25, 2006
how do i show a userform in Excel in the spreadsheet environment? I used to "run macro" but unable to run userform code "private sub".
View 2 Replies
View Related
Jul 12, 2006
how to quit this Do and For loop:
This simple coding should repeat this four times:
first ask user to input data in Textbox2.Text and then Textbox3.Text until user presses Cancel. --> x 4
But it don't seem to exit the Do Loop
For j = 1 To 4
i = 1
Data1 = TextBox2.Text
Cells(i, j).Value = Data1
Do
n2 = TextBox3.Text
If Cells(i, j).Value <> "" Then
Do
i = i + 1
Loop Until Cells(i, j).Value = ""
End If
View 7 Replies
View Related
Mar 22, 2007
In my main macro I have a line that makes it jump into a timer subroutine that starts the main macro every 30 seconds. However, I also have a line in the main macro that makes it jump into another subroutine at 2pm everyday that sends out emails. The problem is that if the timer starts the main macro again before the sending emails subroutine finishes, then it will only finish sending a portion of the emails before it jumps back into the main macro. Is there any way to stop my main macro once it recognizes that it needs to jump into the email sending subroutine, or a way to at least stop the timer subroutine?
the part of my code the jump into the sending emails subroutine and the timer subroutine look like this so far:
If timevalue(now()) >= timevalue("14:00:00") And timevalue(now()) < timevalue("14:00:31") _
Then DAILY_REPORT
End If
StartTimer
View 4 Replies
View Related
Jun 7, 2014
Here is what I am trying to do: I have 30 duplicate worksheets that I enter data every 3 months. I have a macro that clears certain fields and copies data from one field to other and I run this macro after selecting each sheet one at a time. How can I create a macro that will run this macro from the 1st sheet through to the 30th sheet in one click. My macro is called Clear_data.
View 12 Replies
View Related
Jun 24, 2014
I have a macro file
when I run the macro it activates a sub macro called: Find_Empty_cells_win
when this is run it picks up a empty cell in Column G
When this happens I get a Msgbox prompt and then I click on OK.
After this it continues on to the rest of the code.
How do I completed exit the vba coding right after I click on OK
View 5 Replies
View Related
Feb 20, 2009
All I want to do is to stop a routine when I press the Cancel key on the user form that the routine called. I have tried "stop", "quit", "end", "abort", et. al. This seems so simple but I cannot figure out how to do it.
View 7 Replies
View Related
Jan 8, 2009
A good number of years ago I used a line of code at the beginning and the end of a macro to keep the spreadsheet from moving until the macro was finished. At the close it moved if a movement was necessary.
View 6 Replies
View Related
Oct 4, 2011
how do i stop a sheet from being printed and add an error message/ dialogue box saying this sheet cannot be printed, view only etc etc. this to appear when they goto the print option in the menus.
View 5 Replies
View Related
Aug 24, 2012
I have a for which consists of
2textbox
1 listbox
1 textbox.
While entering the data, the cursor does not stop in the list box and goes directly goes to the next textbox. Autotab is set to true.
View 4 Replies
View Related
Jul 20, 2014
I am using a code to transfer data from one sheet to another using the VBA below. The only problem I am having is it is copying the conditional formatting as well which I don't want it to do as it is already set up in the sheet it is copying to. How can I stop this?
Code:
Sub MONTHLY_UPDATE_TextBox2_Click()Dim rRehab As Long, i As Long
Dim wsRehab As Worksheet
Set wsRehab = Worksheets("AUG")
[Code]....
View 3 Replies
View Related
Dec 21, 2007
I have event procedures for the following form events: Before update, After Update, On Open, On Load and On Activate and I have added a breakpoint to every event.
However, despite breakpoints in all these pieces of code the form opens and closes without the code stopping to allow me to debug by manually stepping through the code.
Have I done something fundamentally wrong, I'm still a newbie at VBA?
View 9 Replies
View Related
Oct 4, 2009
I have written the macro;
Sub
For i = 2 To FinalRow
If Cells(i, 1).Value = Range("A1") Then
Cells(i, 1).Select
End If
Next i
End Sub
And I was wondering if there was a way to end the Sub as soon as it gets to the Cell with the “A1” value in it as opposed to just continuing through all the rows to the end of the sheet even after the right value has been found?
View 9 Replies
View Related
Nov 3, 2006
I am running a timer in XL using the Application .OnTime Method.
Everywhere I've looked tells me that the procedure to stop the timer is
Sub StopTimer()
On Error Resume Next
Application.OnTime earliesttime:=RunWhen, procedure:=cRunWhat, schedule:=False
End Sub
I have this code in with the timer, but when I hit F5 or go to Tools--->Macros--> and Run the StopTimer Macro the timer just keeps running.
how I can properly call this procedure and stop the timer?
View 9 Replies
View Related
Dec 21, 2006
I have the following VBA in the attatched spreadsheet (seperated so I could upload)
The only problem that I have is that I cannot stop the loop, it constantly keeps going round in a circle.
What im wanting to do is when the Date checked is the End date and the End Time has been checked, to move onto the next row and do it again until it gets to row 40.
Sub Calculate()
Dim CellNo As Integer
Dim CurrentDate As Date
Dim StartDate As Date
Dim EndDate As Date
Dim theDate As String
Dim c As Range
Dim i As Integer
Dim addDate As Integer
Dim DaysHoursSick As Date
Dim StartWorkTime As Date
Dim EndWorkTime As Date
Dim endmarker As String
I've only got this VBA working really under Wednesday so I can make sure it is right before adding it onto the other dates,
View 4 Replies
View Related
May 25, 2007
I'm using Application OnTime to fire a procedure every 30 mins. It works great, but the workbook tries to reopen itself when i close it (but not if i close excel entirely). I assume this is because I haven't stopped it anywhere. So I put a call to a procedure that has: Application.OnTime RunWhen, cRunWhat, , False
In the "Workbook_BeforeClose" event. This doesn't solve the problem. What am I missing?
Private Sub Workbook_BeforeClose(Cancel As Boolean)
StopTimer
End Sub
Private Sub Workbook_Open()
StartTimer
End Sub
(module1)
Public RunWhen As Double
Public Const cRunIntervalSeconds = 1800 ' thirty mins
Public Const cRunWhat = "dothis"...............................
View 8 Replies
View Related
Jun 13, 2014
I have an add-in that can run the code below. It works fine, however, I need it to run whether there is just one row of data, or 100 rows of data. I have headers, so the first row of data starts in row 2, and the last no matter what will be in row 100 (so 99 rows of actual data technically). There are usually only 10 rows of actual data as the rest are usally set to blanks with iferror. The code below works, but I need it to run for however many rows of actual data there are.
View 1 Replies
View Related
Feb 4, 2014
I've got three workbooks that end users will be using for data entry. The VBA code for the three workbooks is identical.
I'm trying to encapsulate the code into an add-in so I only have one copy of the code that I have to debug/maintain.
Furthermore, I've also encapsulated the code in the add-in into a class. The class isn't really a "usual" object modelling some data; rather, it's a utility class processing Worksheet_Change and Worksheet_Activate events. Hopefully this isn't a really bad idea, rather than keeping the code in standard modules in the add-in.
The application is called "Midas". Here are some code excerpts:
Midas.xlam:
Standard Module:
[Code] ......
Class Module:
[Code] .....
And in the end user workbook:
[Code] .....
The Wbk_SheetChange event handler is triggering, but it's looking for the code in the end user workbook, instead of the class. Is there a way I can change
[Code] .....
to call the private routine "Cases_Changed" (where "Cases" is the sheetname) residing in the class instead of looking for it in the workbook?
View 4 Replies
View Related
Nov 3, 2009
I have 2 subs routines in a mod. I have declared the two variables at the top of the sub. However when I call the second sub the variable's are not passed along.
Here is an example script. All in one mod. I have taken out the junk in between to help edit the problem.
I'm looking to pass the same bnumber and dnumber to the secound sub.
View 2 Replies
View Related
Nov 6, 2009
How do I have a workbook execute VBA code when I hit 'Enter' anywhere on a specific sheet? I don't need the code to execute when I hit 'Enter' on any of the other sheets in the workbook, just a specific sheet.
View 11 Replies
View Related
Dec 12, 2011
I've written a Sub that separates words in a sentence into columns in an excel worksheet and it works perfectly. I can't however convert the convert it to a function procedure. when I do so I receive a Circular referencing problem or upon making necessary corrections to prevent circular referencing, I get the Excel #Value error. Here's the code:
Function TextToColumns(Txt) As String
'
' Enters Text Separated By Spaces Into Columns
'
Dim i As Long
Dim k As Long
Dim cell As Range
[code]......
View 1 Replies
View Related
Dec 17, 2012
I currently have a macro that runs every 10 seconds. This macro calls 5 sub-routines.
Code:
Public Sub Copy_Data()
*****code****
*****code****
*****code****
*****code****
Call SortData
Call Create_OutOfStock_File
Call Create_NearEmpty_File
Call Create_InStock_File
Call Create_Other_File
Application.OnTime Now + TimeValue("00:00:10"), "Copy_Data"
End Sub
I need to keep the current code to run Copy_Data every 10 seconds, however, i would like:
Code:
Call Create_OutOfStock_File
Call Create_NearEmpty_File
Call Create_InStock_File
Call Create_Other_File
To be called/run every odd minute, for example, 00:01:00, 00:03:00, 00:05:00
View 6 Replies
View Related