I have a project report, which is user-configurable, allowing the user to customise the data that is displayed based on a number of parameters.
To ensure the report always prints neatly (the number of visible columns and rows varies, depending on the above parameters), so I have a macro that dynamically sets the print area of the worksheet.
At present, I call the macro from the workbook.beforeprint event, which works fine in terms of printing. Ideally however, I would like the macro to be called when CTRL+P is first pressed - i.e. the resulting 'print screen', containing a preview of the print out should reflect what will subsequently be printed, when the 'Print' button is then pressed.
I am not sure if this makes sense (Excel 2010 and 2013 are different from previous versions).
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).
I'm trying to print an excel workbook in a particular format. I have several sheets. I would like the information on each sheet to be duplicated directly to the right of the info, on the same printed sheet in Landscape layout. After printing, I need to be able to stack the workbook and cut straight down the middle. This way, I have two identical workbooks with identical margins, perfectly centered.
Is there an easy way to do this without copying and pasting the cell data into the spreadsheet as well?
If there is not, and I must have duplicate tables on the same worksheet, is there an easy way to format the printing so that they print out perfectly aligned?
I've tried to use the ruler function in the print page to stretch, but, it only stretches a particular row/column.
I have place a camera-picture of a table on the right side of a chart. On the screen it looks great! (See below - with some redaction)
.... but when I print it the table expands off of the side of the chart. Scale is 100%, zoom is 100%, Excel 2010 (See below - with some redaction). Whether or not I have a print area does not seem to make a different in the problem. Also, it appears that this happens with any shape I put in that place, it's not specific to the camera tool.
I have a series of worksheets (different workbooks) that have the same exact column widths and line depths. On screen the width and depth is identical but when printed, one takes up less width and more depth and the other vice-versa. Most (over 100) are just fine but every once in a while another is found that is distorted in print preview and printing and there seems to be nothing I can do to correct the problem. One difficult solution is to take the content from the "wrong" worksheet, do a save as on a "right" worksheet and drop the content in there.
Office and Excel 2013Windows 8Saving as different versions (xls instead of xlsx) makes no difference.Same printerSame monitorsAll worksheets are set to 17 pixels for both columns and rows (looks like graph paper)After setting up print area and viewing, the light gray dashed lines that show page breaks are different! The majority ("right") sheets have four fewer columns and four more rows than do the "wrong" worksheets.
I've have a tool/code that takes the screen prints of the active window (when I press F9) and pastes it in a word document.
But whenever I do copy some text or any other image and when I press F9 to take the screen print of the active window. I get the text pasted into the word, this is because the clipboard content has text first and then the screen print of the active window.
Instead When I press F9, I wanted the below to happen
1. Content from the Clipboard should be cleared
2. Take the screen print
3. Paste it in the word document.
Note: My tool/code already does 2 and 3. Looking for 1 alone, ,
I have a chart with 2 Y axis. I am attempting to write some code that will update both axis with the same max & min value that is triggered by the combobox selection. The code will update the axis but is not triggered by the combobox selection.
I have a user entering text into a textbox on my userform. The textbox is linked to a textbox change event. Unfortunately, the event is triggered as soon as the user enters the first character of their entry. I'm thinking that the textbox change event isn't the most appropriate for this scenario. What would I need to do to trigger the code (of the change event) with hitting ENTER when finished?
If no program (code) is running and Calculation is turned to ON, what expression could be placed into a cell that will change on its own that could necessarily and periodically trigger a change event subroutine. How can I trigger a change event when nothing is changing?
I have a situation where my code simply stops running so i need a change event to assess whether code is running (or not) and to issue a warning to the programmer that the code is, in fact, stalled. The change event subroutine has not only a warning system but a "timetorun" feature that will come back and warn again until the programmer can address the issue.
Unfortunately, I have to deal with this issue in a check and balance fashion because my many attempts to seek solutions to a stalled program (root cause) have failed.
I am working with a large legacy file/program which has a lot of issues. Foremost, and unfortunately this cannot be changed, is that all of the controls were placed directly on the worksheets instead of on Userforms.
I had previously posted code from the legacy file which may have been excessively complicated. So I edited my post to this simple example. Sheet1 has one textbox and one command button. Sheet 2 is blank.
If Sheet2.Activate is commented, everything works fine. If Sheet2.Activate is executed, then Excel crashes....
On my userform I have a frame. Within the frame, there are 6 option buttons. Can I trigger an event when when the user selects a different option button? I was expecting to see a Frame.Change method. But I don't. One solution is to insert code on each of the Option Buttons Change methods.
Is it possible to write an event trigger macro to format cells? Let's say I want to add a new information to the row which is after FinalRow. Can I force excel to detect the input and then format that new row as previous rows or something custom?
I am working with a large legacy file/program which has a lot of issues. Foremost, and unfortunately this cannot be changed, is that all of the controls were placed directly on the worksheets instead of on Userforms. The actual code from the legacy file is excessively complicated, so I created this simple example. Sheet1 has one textbox and one command button. Sheet 2 is blank. I want to be able to click the command button or use the Enter key on the command button, to trigger the Click Event. Clicking works fine. When using Enter, if Sheet2.Activate is commented, everything works fine. If Sheet2.Activate is executed, then Excel crashes.
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) Dim bBackwards As Boolean Select Case KeyCode 'Only look for tab, return, down arrow, up arrow Case vbKeyTab, vbKeyReturn, vbKeyDown, vbKeyUp Application. ScreenUpdating = False 'Do we need to go back to previous control bBackwards = CBool(Shift And 1) Or (KeyCode = vbKeyUp) If bBackwards Then TextBox1.Activate Else CommandButton1.Activate Application.ScreenUpdating = True End Select End Sub Private Sub CommandButton1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) Dim bBackwards, bForwards As Boolean Select Case KeyCode Case vbKeyTab, vbKeyReturn, vbKeyDown, vbKeyUp Application.ScreenUpdating = False...................
I am trying to write a worksheet_selectionchange macro in which the change is initiated only when certain cells are changed (B6:B9 and X9). I do not want the change to be initiated when any other cells on the worksheet change. B6:B9 and X9 are drop down boxes and the values within the drop-down boxes is variable.
I am trying to create a trigger event that opens an email when a particular row is altered. This all worked fine, until I tried to take it a step further and insert information from the spreadhseet into the email aswell.
I receive Argument not optional.
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 10 Then Call GenerateEmail(Target.Address) End If End Sub
So, I have a worksheet with a bunch of combo boxes. The code for the worksheet is below. The issue I'm having is that anytime I drag and drop a cell anywhere on the page, every single control on the worksheet triggers. VB runs through all the code on the sheet, TWICE(I used the debugger extensively trying to find a solution), and causes dozens of successive re-calculations of the entire workbook, which has a couple of tables. This happens on any cell drag-drop on the worksheet, or when I click the command button on the screen.
I have no clue what is causing this. Even more bizarre, it seems to trigger a custom function which is located in a separate module, and isn't even utilized on the worksheet in question. I guess this is because it makes the whole workbook re-calculate?
I have a workbook with several user forms. When the workbook opens I'd like to show frmSplashScreen for 3 seconds then close and have another form frmMain show. I've tried the following code and it opens frmSplashScreen ok but it does not automatically close the form. If I click the close box then in 3 seconds frmMain will show.
Code: Private Sub Worksheet_SelectionChange(ByVal Target As Range) Application.EnableEvents = False Application.ScreenUpdating = False Application.Calculation = xlCalculationManual Dim WTH As Long If Target.Row = 19 Then WTH = 1 End If Application.Calculation = xlCalculationAutomatic Application.ScreenUpdating = True Application.EnableEvents = True End Sub If I comment out the code, my screen doesn't flicker.
In the "Tmp = 1" line I was using the special cells method to color constants red (without selecting anything). When I use that code instead of the "Tmp=1" line, it takes about a second to change cells, and I see the "4 Processors Calculating Message" in Excel when the code fires--even if it's not in row 19.
I would like to emulate hitting the Alt+Ctrl+"Print Screen" button on the keyboard with the following code. I know there are some restrictions around using the PrintScreen with the SendKeys, but I'm hoping I can still figure out how to make this work.
Following is the first part of a larger macro I've set up. If I can just get this to work, that would be perfect.
Sub PrintTheScreen() Application.SendKeys "^%" & "PRTSC" End Sub
I have a WYSIWYG problem: what I see on the screen is NOT what I get out of the print job.
I commonly have the problem when working with Excel objects (any kind of shape, text box, line, graph) in that the layout looks great on the tab that I created, but when I go into PrintPreview or actually print it out, the shapes don't quite align with what I had built in the tab. Where I thought I had lines joining, the print out shows them crossing at other points. If I then go back to the tab and look at the layout on the regular screen, it looks fine.
This problem can be easily understood if you try to create a triangle by drawing three lines (non-overlapping lines that cross only at the vertices). Note that the lines either prematurely cross, or don't intersect at all when you print it out.
THis problem is even magnified when using the camera function to take a "snapshot" of a graph or other objects. In fact, it has the tendency to even "mess up" the graph's formatting, regarding the arrangement of titles and axes (often making them overlap).
Is there a feature or VB code that will take a screen shot in excel for the sheet that I have active?
What I would like to do is run a macro that does a few things, then takes a screen shot and bundles it up in an email to send (Outlook on Exchange). Since the report is 30 MB it cannot be emailed and taking the time to compose a report w/screen shot takes too much time.
I have the code below that is two separate activities and I want to change the second activity from a cell trigger (Set KeyCells = Range("K42:AD42")) to a button trigger. I need to first to remain unchanged.
I'd be ok if this was just one macro that I could assign to a button but because its two and I need to write the second's to clicking a button I'm over my head.
Its occured to me while writing this that because it'll be a range of buttons I'll probably need to make each one an individual code? Is this the case? If so I may have to just keep this as it is.
I have a Word document that I'd like to print first, when I click Print on a specific worksheet (not on Print of other worksheets in the workbook, just the one). The worksheet contains customer information and is essentially a cover page for the Word document. the Word document already prints in reverse order, as does the worksheet, so I just need the Word doc to print prior to the worksheet/cover, to give me the total print package in the correct order. I've tried using the following code in the Sheet object for the worksheet in question;
Private Sub Worksheet_BeforePrintEvent() Dim appWd As Word.Application Set appWd = CreateObject("Word.Application") appWd.Visible = True 'Change to False when code is good 'Open Doc appWd.Documents.Open Filename:="S:BryanQuoting ToolsP'Binder Leading Pages.doc" 'Print Doc appWd.ActiveDocument.PrintPreview 'Change to PrintOut when code is good 'Close Doc Set appWd = Nothing End Sub
with an event macro. Basically I have a workbook with 11 worksheets and have created a macro that increases the value of cell J3 by 1 in Sheet1. However at present it only works from Sheet5, but I now need it to run from Sheet6 and Sheet11 as well and not from any other worksheets. The code I have is as follows
Private Sub Workbook_BeforePrint(Cancel As Boolean) If ActiveSheet.CodeName = "Sheet5" Then With Sheet1 .Range("J3").Value = .Range("J3").Value + 1 End With End If End Sub