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?
Here is a Magnifying Glass that you can use in Excel I am not sure about the usefulness of it in the normal day to day use of Excel but it's cool and was challenging to programme. The actual round Glass is actually a simple XL userorm whose standard styles were changed.
Here is a workbook example : http://www.savefile.com/files/1177730
Just point to the round Glass with the mouse and move it around the screen to zoom in. It worked on my machine quite smoothly.
Here is the code that goes in a userform :
Option Explicit
Private Declare Function StretchBlt Lib "gdi32" _ (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long, _ ByVal nWidth As Long, ByVal nHeight As Long, _ ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, _ ByVal nSrcWidth As Long, ByVal nSrcHeight As Long, ByVal dwRop As Long) As Long.............
I know you can predefine the level of zoom you want by using the ActiveWindow.Zoom control. I'm trying to find some code to Zoom in by a particular percentage. For example +10% zoom, so if you are currently on 90%, excel zooms to 100%, click again and then get a zoom of 110%.
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
[code]....
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'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:
Sub Auto_Open()
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.
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 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 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.
Objective:
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 am running a script that populates about 70 or so workbooks based on information from the database. Naturally this script is quite slow but what seems to take the most time is opening and closing workbooks. Is there a way to "hide" the workbook opening/closing operation on the screen? I have tried using the
Application. ScreenUpdating = False
this sped the code up but you still see the workbooks opening on the screen.
I'm just looking to prevent users from using the print screen or the alt print screen buttons on the keyboard. I have this script that works if I use "39" (Right Arrow)but wont work if I use "42" (Print Screen Button).
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.
If I send a workbook out with the zoom set at 90...will the zoom be at 90 when others open it.? Also, is there a worksheet event that I could insert to force a specific worksheet to always open with the zoom at 90??
How do i change the default zoom that excel views documents? Whatever view the last person saved the file as it opens in that zoom. I want it to open 75% zoom no matter what anyone saved the files as.
I have a sub that copies worksheet to a different blank sheet in a different work book. Is there a way for me to set the zoom value on the 2nd sheet (the one being copied to) the same as the 1st sheet?
I could need a code (WS code I assume) that open the sheet in 70% zoom every time I open that sheet. For now I get in 75% every time I open it. I guess that WS code will bypass that default setting, or bug, or what ever resets it 75%.
I am developing a form for emergency dispatching. One of the features of this dispatch sheet is that there are several maps in it that open on a seperate form. The map form has 4 maps that are picture files in an image. these images are in a frame. The different images are selected using option buttons. Given the background above, my problem is this. I have code that zooms in 50% each time the Click event for the image is fired. wht i am trying to do is make the zoomed view center where i clicked. this is the code that i have so far but it doesn't work all that spectacular, the closer I zoom in the further out of center the place i clicked gets untill it is out of view.
Private Sub Layout_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) CurrentX = X CurrentY = Y End Sub
Private Sub PlantLayout_Click() If Frame1.Zoom < 400 Then Frame1.Zoom = Frame1.Zoom + 50 frmmap.Frame1.ScrollLeft = CurrentX - (Frame1.Width / 2) frmmap.Frame1.ScrollTop = CurrentY - (Frame1.Height / 2) frmmap.Repaint End Sub
to apply a zoom to Fit Selection on all worksheets upon file opening? I've read many posts on this and understand how to apply this via worksheet activation, but haven't discovered how to make this to happen to all worksheets when the file is opened.
Zooming the selection needs to happen in the workbook module due to additional sheets being added at random and because it will facilitate the flow of the meeting so that we don't have to wait for the user to select and zoom.
Private Sub Workbook_Open()
Dim ws As Worksheet For Each ws In ActiveWorkbook.Sheets
I've used various "zoom" searches and can't find what I need. My users have different amounts of toolbars so the amount of screen space changes. I need to zoom so 4 graphs show. Am looking to enable the user with a scroll bar where the user could click / slide the control to change the zoom size on the screen so they can see the 4 graphs at their preferred "zoom".
I would prefer a control on the sheet and link it to a macro (or line of code if that's the proper phrase) and let the user decide (some people will want bigger zoom due to eyesight etc).
Private Sub ScrollBarZoom_Change() ScrollBarZoom.Value = ActiveWindow.zoom.Value End Sub
But I get Runtime error '424': Object required. Auto Merged Post Until 24 Hrs Passes;Nevermind. I found it. Answer was:
Private Sub ScrollBarZoom_Change() ActiveWindow.zoom = ScrollBarZoom.Value End Sub
I am struggling to get a macro code for zooming in and out the shapes. I have a macro which fulfill half of my requirement. By assigning the below macro to the shape I am able to increase the current size to double by clicking on the shape however I need the same macro should retain the original size upon second click.
Here is my code to increase the size.
[Code] .....
"The requirement: Once after assigning the macro, on first click it should double the shape size and on second click it should retain the original size."
This "smells" like a simple question, but I've had no luck finding a way to [programmatically] adjust the App.Window to fit around some cells.
I've found "Application.Goto", also the Application.Width/Height setting. The App.Width setting is pixel based, so if there's an easy way to know a cell's pixel-location, that'll work too!
I want to know how to make a spreadsheet automatically control the zoom of a worksheet depending on the size of the screen it is opened on. For example, if it is opened on a screen of a certain size then it will set the zoom to 80% so the worksheet will show only a certain section. I want my worksheets to look the same on even the larger screens and not show the unused rows and columns around the section I am wanting to highlight.
In a previous thread I was told I might need to write an API to help me with achieving this. First of all, what is an API? Secondly, how do I go about writing one?