I've developed a complex dictator application, which pretty much takes over the entire Application object. During beta testing, I've had some user complaints that, once my program is started, they can't access their existing workbooks.
In order to remedy this situation, I'm trying to construct a front-loader workbook, which will automatically determine whether or not to start a new instance (application) of Excel. If the user already has a workbook open (i.e. "MiscBook.xls"), the front-loader will start a new application; otherwise, it will just use the existing application.
My "Auto_Open" code for the front-loader workbook is shown below:
Dim xlApp As Excel.Application
Dim wbkTemp As Workbook, wbkApp As Workbook
Dim lCount As Long
Dim vTemp As Variant
The code works fine, but I have a minor gripe: every time a new application is created ("Else" in the "If-Else" above), the screen doesn't appear to refresh. In other words, I get a new window (instance of Excel), but none of my custom-defined buttons and menus show up. If I hover my mouse over their intended locations, they "appear" one at a time.
I'm just wondering - is there something I can do to prevent this behavior, or "refresh" the new application window upon startup? I'm essentially looking for something like "Userform.Repaint", only for a brand-new Excel Application object.
My Splash screen opens a few seconds after the workbook has loaded. Is there a way to make the workbook open minimzed until the the splash screen closes then open properly? What I trying to say is that only the splash screen is visible until it closes.
I have data that daily needs to be refreshed and printed to pdf.
I figure the simplest way to do this would be to task schedule the workbook to open daily. Then on open it will refresh the data, print it after all data has been refreshed and close the workbook.
I set it up originally without the need to print so I have all the queries set to refresh when opening the file, however when I now try and put the code to print to pdf on the workbook open event it runs before the queries are finished running. (Query notes: queries were created through Microsoft query, and are accessing a MySQL database queries set to refresh when opening the file queries set to enable background refresh).
How can I make excel go to full screen (Alt-W-E) as soon as a workbook is opened and then revert back to normal view when it is closed? I already have this code in my workbook_open event just in case that will affect the answer:
HTML Code: Private Sub Workbook_Open() If Not LockSheet(ThisWorkbook.ActiveSheet) Then Exit Sub
I have a userform that opens a woorkbook and fills some textbox from that woorkbook. Although that it goes very fast it is still visible (sometime just in the toolbar) and flickers the screen. Is it possible to open it "hidden"?
Private Sub UserForm_Initialize() Application.ScreenUpdating = False On Error Resume Next Workbooks("Kontrollsystemet.xls").Close SaveChanges:=False Workbooks.Open "V:allaBeredningKontrollsystemetKontrollsystemet.xls", ReadOnly:=True Sheets("Calc").Activate Label4 = Range("K7") Label5 = Range("L7") Workbooks("Kontrollsystemet.xls").Close SaveChanges:=False Caption = Now TextBox1.SetFocus Application.ScreenUpdating = True End Sub
I have a workbook that has worksheets that serve as data input pages for the user. I have control boxes created by the forms toolbar.
I created a splash screen that is to be launched when the file is opened. Instead, often the last sheet that the user was on when they last saved the file (usually but not always the worksheet called "Main Menu") is seen first.
I understand that not all the sheets can be hidden - that one must be unhidden.
So I created a sheet called "Background" that is a solid color with no gridelines.
When the file is opened, I want the "Background" sheet to be seen first and then the splash screen to be initiated.
Now - when the user opens the file, the Main Menu worksheet is seen for a few seconds (or whatever the last sheet was on before it was last saved), then it disappears and the solid background screen is shown with the splash screen. When the splash screen ends, the "Background" sheet disappears.
Here is the code that I have in the workbook
Private Sub Workbook_Open() Dim wks As Worksheet On Error Resume Next For Each wks In ThisWorkbook If wks.Name "Background" Then wks.Visible = False End If Next wks End Sub
What has to be changed so that the first sheet that is seen upon opening the file is the "Background"; then the splash screen happens; then it returns to the Main Menu sheet?
I have a large workbook with about 20 worksheets that I have used for several years without problems. Recently, I have been getting strange behavior when the screen refreshes. The biggest problem is that I get images of other worksheets covering my current worksheet when I change a cell. I can make them go away by scrolling or flipping between another worksheet and back. I have tried using manual recalc and this has helped somewhat but I can still get the images sometimes. The workbook contains VBA that performs various tasks on every worksheet (unlock, update pivots...) but these have been in there forever. There is also one piece of code that performs advanced filtering. I can only think there was something changed with a security patch, but I wanted to know if anyone else has had this issue and might be able to provide some advice on how to prevent it.
I have 2 forms. Form1 and Form2. I load Form1 to display. A button on Form1 calls Form2 to display. After I hit Cancel-Unload on Form2 it doesn't dissapear. How do I get rid of the residual image of pesky Form2 after I unload it and only display Form1 WITHOUT having to reload Form1 after Form1 calls Form2
In English Form1 Displays Form1 call Form2 to display Form2 is unloaded by hitting a button on Form2 Form2 is unloaded, however, it's image still displays!!!
Need some way to force screen to refresh without having to unload Form1!
I have created a spreadsheet some time ago and have been asked to improve on it but I'm rusty with VBA.
I have an automated ordering system that saves each sent order as the date e.g "05-04-2013.xls" but the management team want a graph with the data for the last 4 weeks compared. I have created a seperate workbook called "consumables report.xls" which has a column with the products listed followed by columns "Quantity" and "cost" which is repeated for the 4 weeks of the month.
I want to add a button to prompt the user to choose the saved order e.g "05-04-2013.xls" (all orders saved in same directory) to copy and paste the quantity and cost columns (c8,D69) into "consumables report.xls". I got this to work earlier but it would only paste the formulas and not the values. So I need
A prompt to open workbook Copy range (c8,d69) Close work sheet Paste special .value (c8,D69)
I dont care if it has to open the workbook to copy the data as this will only be used once a month so it dosnt matter how slow the code is.
I have a batch script which runs the following line to open my excel sheet:
when this sheet opens it automatically refreshes from a csv file.
The problem is that I want this sheet to open, refresh and close. To close Excel I have been using the taskkill command in my batch script, but I have found that using this method doesn't update the sheet properly - the sheet only updates properly if I close Excel in the correct way, but this means manual input and I want this to be automatic.
I'm launching a main form from a menu I've added. I want to make the form modal. From that form, the user can launch several other forms (that I also want to be modal). If any of the forms are modal, then the Excel sheet that is visible in the background does not refresh. If the form is moved at all it creates a dragging pattern on the screen and hides the spreadsheet. That's not so bad, except when I get to either a second or third level form and start closing them. They're still visible even though the previous level form is now on top. Most of the forms get bigger the deeper you go into the data entry process. So, as you close them and move back up the chain, it gets very confusing. If I simply make the forms modeless, it refreshes fine. I've tried using Application. ScreenUpdating = True and Me.Repaint with no success. I couldn't figure out where to put the Me.Repaint since there isn't a UserForm_Move event.
I have a model which extracts data from an external data sournce using an ODBC query. This data is then used to generate a pivot table. I have incorporated code to update the query and the pivot table on startup but would like to disable the Enable Query Refresh message box which occurs at startup (it would also be nice to disable the security warning but I know that is a no no)
I have Monthly sales sheets that import my cash register data into them. I wanted to set them up to do everything without being there. So I have my task manager open excel at 9:30pm everyday and it runs the macro to import the data into the correct day of the month. Here is the workbook
Private Sub Workbook_Open() Dim dTime As Date dTime = Time If dTime >= TimeValue("9:30 PM") And _ dTime < TimeValue("9:40 PM") Then ImportData End If End Sub
This is in my July spreadsheet only. So is there a way to make it know which month spreadsheet to open on the 1st of the month? So come August 1st it will automatically open the August workbook and input the data for the first day? By using the date?
I have just run into the situation where some users, magically and overnight , have widescreen monitors. This means the screen designs for 4:3 monitors show way too much on 16:9 monitors. I would like to put a control button on the opening page that gives them a choice of zoom, which usually seems to be 100% and 135%.
I'm thinking probably an IF sequence to parse their response and execute the appropriate zoom. But how can I make it effective for all the sheets in a workbook?
I am trying to run a macro inside a Worksheet_Change event.
Private Sub Worksheet_Change(ByVal Target As Excel. Range) If Not Application.Intersect(Target, Range("Mon_Data")) Is Nothing Then If Target.Value > 0 Then Sub Refresh_PivotTables() ' ' Refresh_PivotTables Macro ' Macro recorded 10/1/2008 by JackChappers '
as you can see, i put the macro within the worksheet_Change event so that, when data is changed on another sheet (target.Value >0), the Macro is run (the macro, by the way, refreshes some Pivot Tables).
The refresh Refresh_PivotTables Macro works on it's own, but when i use it like this, i get the message:
Ambiguous name detected: Worksheet_Change"
If it makes any difference, i also have another Worksheet_Change event above performing another action. I think that may be the problem, if it is, how do i run them both without the error?
I have a great bit of code for a spreadsheet I'm working on by a board regular called Norie;
The code is;
Code: Private Sub Workbook_BeforeClose(Cancel As Boolean) If ActiveSheet.Name "ThankYou" Then Worksheets("ThankYou").Visible = xlSheetVisible Application.Goto Worksheets("ThankYou").Range("A1"), True Cancel = True UserForm1.Show
When I open the workbook it shows for about 1 second another sheet in the workbook rather than just instantly showing the "START" tab. Is there any way to get over this to make this code 100% perfect?
I just really would love upon opening this workbook for the sheet that 1st comes into view to be the START SCREEN TAB, without any flash preview of another sheet.
I've tried the F1 Help screens and searched the board with nothing that applys to my problem popping up.
I have several Workbooks that I use regularly. Without making any changes that I know of, recently several of the workbooks began opening too long and a little off to the right.
I can grab the top header and move them back to the left but I have no visible bottom slider bar and the side slider bar when at the lowest point that I can pull it down to is about 1000 rows from the last entry. I have other Workbooks that are working perfectly. Its like my Monitor needs to be two inches taller.
I have checked View settings -- Format Settings -- Resizing and all other things that I can think of, all to no avail.
Using Control G and trying to mentally keep track of my current last line number to enter a new row is really getting Old.
I have a workbook_open macro that refreshes a query. works great when opened directly from Excel 2007, but when I use Task Scheduler to call the sheet or call Excel the query will not refresh...macro runs but no refresh.
I have created a splash screen. Is it possible when the excel workbook is opened up that only the splash screen shows? Right now, the workbook opens and there is one sheet that is visible for a certain period of time and then the splash screen comes on. I would like the reverse to happen. First the splash screen and then the one sheet.
I am working on a document at work with multiple worksheets. It would be most useful for me to be able to split the screen so that I can work on both worksheets at the same time without (a) having to switch back and forth, (b) modifying the workbook so that everything is on one sheet, or (c) opening the file twice and sizing the windows to my screen.
My goal is to be able to see the information on each sheet while modifying one sheet or the other.
I have a bunch of workbooks that are used to capture information about implants used in surgical cases. I use a small VBA process each morning to update a querytable which contains all of the core patient information for future cases, however it is not working properly. The code goes through the process OK, or so it appears, opens and closes each sheet, and saves them appropriately, but the query table doesn't seem to refresh no matter what I do.
Sub RevisedRefresh() Dim lCount As Long Dim wbResults As Workbook Dim wbCodeBook As Workbook Application. ScreenUpdating = False Application.DisplayAlerts = False Application.EnableEvents = False On Error Resume Next Set wbCodeBook = ThisWorkbook With Application.FileSearch .NewSearch .LookIn = "G:SHSTheatreCommonReceptionImplants" .FileType = msoFileTypeExcelWorkbooks If .Execute > 0 Then For lCount = 1 To .FoundFiles.Count Set wbResults = Workbooks.Open(Filename:=.FoundFiles(lCount), UpdateLinks:=0)...............................