How To Clear Contents Of Clipboard Before Tool Takes Screen Print In Excel VBA
Apr 20, 2014
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 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)
Problem Example.png
.... 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'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).
Using the code below I can't clear the clipboard, the range still selected after copy and paste. Obviously, "Application.CutCopyMode = False" failed. Is there a way to deselect/clear? Using Excel 2010.
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 trying to clear the clicpboard using VBA so i don't get messages asking me what to do. is this possible and if so how? i could simply turn all alerts off but i rather not.
I'm currently opening up worksheets, copying the data there inside tables and pasting it over to a new worksheet which is basically the summary of all the data, unfortunately because I am moving large amounts of data, half way through the process I get a pop up asking me if I want to copy data to wherever to make sure it's stored or do I want to loose it, of course it's only a matter of hitting the no button to re-write the data so copy and paste carries on working but is there no function in VBA to clear the clipboard after every copy and paste, such as clipboard.clear, or something along those lines? Anything that will stop this message from appearing, I was my summary worksheet to work without popups appearing because then that would mean someone would have to sit there as it copies and pastes values, clicking no every time the clipboard gets full.
I am trying to clear the contents of a range of contiguous cells (containing formula) in Excel 2010 64bit. But it is taking a LONG time (read >30min to clear a range 288 x 100). Originally was doing it in VBA but it was taking too long so I started stepping through the macro and identified that the slow down was occurring on a particular sheet only. So the problem is in Excel....not VBA because it is still very slow when deleting the same range in Excel without using VBA.
I've tried all the usual suspects including: Application.EnableEvents = False (run from the VBA Immediate window when using Excel without VBA), Setting to Example of slow clear contents5.xlsxExample of slow clear contents5.xlsxManual Calculation, Turning off screen updating, deleting all the conditional formatting on the sheet, removing any data validation from the sheet (yes all these at the same time). There are no links to external workbooks. I've even tried in VBA changing from .ClearContents to .Value = vbNullString. All to NO AVAIL! By way of background the file is about 72Mb #.xlsm.
If I try to clear contents of larger ranges on other sheets in the same workbook it is instantaneous. If I copy the problem worksheet off to a new workbook, I can delete the problem range almost instantly. Why deleting a range of cells should take so long! Again to clarify, I am using the terms "delete" and "clear contents" interchangeably, but they both mean "clear contents" (not delete and move up cells). P.S I've also looked into the reported conflict between Excel and Google Desktop Office Add-in (Office Button->Excel Options->Addins->Com Addins and deselect Google Desktop Office Addin) but I didn't have Google Desktop Office Add-in so it isn't that.
I am using VBA in conjunction with an application called Quick Keys (basically software that allows you to program key strokes) ... and with this current project of mine ... I keep getting one of the following two errors:
"Cannot empty the clipboard" OR "Cannot clear the clipboard"
So I Googled, and based on the results it seems it is a VBA related error!
I have a spreadsheet where i need to disable Cut but allow copy & paste. This must stop dragging and dropping and only apply to the workbook in question, i.e. if I CTRL-TAB to another workbook cut is re-enabled. I have used the following code
Private Sub Workbook_Activate() enableCut enable:=False End Sub
Private Sub Workbook_Deactivate() enableCut enable:=True End Sub
Public Sub enableCut(enable As Boolean) Dim cBar As CommandBar Dim cbCtrl As Office.CommandBarControl With Application If enable Then .OnKey "^x" .OnKey "+{DEL}"...................
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.
On a spreadsheet in excel from office xp, is it possible to display a row on the screen, but when you print the sheet it doesn't get printed? How do I do that?
I tried hiding the row, but the admin wants to be able to see it on screen and complained too tedious to unhide it on screen then hide it for printing.
I have never written macros for excel so not sure if there is a solution there, or if it can be done another way.
I also thought we could have the data from the row in another sheet that doesn't get printed, but she (the admin) preferred the hide/unhide solution.
i am trying to use clearcontents with the below code but i get an error,
With Sheets(1) With .Range("J7") .ClearContents Range("J7:J" & .Range("A" & .Rows.Count).End(xlUp).Row) .Formula = "=H7-I7" .AutoFill Range("J7:J" & .Range("A" & .Rows.Count).End(xlUp).Row) End With End With
I want the function of clear contents to work based on the value of B4. If I run the code with clear content part excel crushes.
VB:
Private Sub Worksheet_Change(ByVal Target As Range) If Range("B4") = "Basic" Then ''*** B4 is adropdown ***'' ActiveSheet.Unprotect 'Range("B10,F10,H10").ClearContents ''*** if I run this part the excel crushes ***''' Range("B10,F10,H10").Locked = True
I am looking for a way to remove text from a cell if it is 2 characters or less but do nothing if the text is longer than that. Is there a way to do this with either a function or an advanced find?
For more detail, I have a list of middle initials and last names. The cells are either a middle initial by itself like "D." or they are a last name like Jones. I want to go through and delete the cells that have the middle initial and leave the ones with the last name. So if there is a function that will evaluate the cell, and if it is 2 characters or less, then delete the contents. If greater than 3, leave it alone.
I have a range of cell content to be clear (Value only) but no formula in those cell.
The range is populated in cell H106. Example cell if cell H106 = D5:E102 then clear the value value only in cell range D5:E102 if cell C106 = G5:H102 then clear the value value only in cell range G5:H102.
I think I've had enough of using excel generated macro's as an excuse for decent code. I need to turn this:
Small procedure, function, what have you that will continue this pattern until I hit some kind of indicator to tell it to stop. This just clears the contents from 7 rows, hops down 9 rows and does it again.
I have a monthy activity where I would like to clear the area B13:P42 on various worksheets in the same spreadsheet. Is there an easier way to do this rather than just recording a macro?
I am trying to have a macro clear out the contents of a cell before it quits, the cell contains validation data in the form of a list. My goal is to force the user to choose an option every time before exporting a file, the cell contains what will become a part of the filename. I want to make sure the user, usually me, remembers to change it each time rather than accidentally saving over another filename. I had the following code and kept getting a 400 error (nice and specific)
Code: ActiveSheet.Range("O3").ClearContents
The only way my macro will run without a 400 error is if that line is commented out. Is there any way to clear out the cell and retain the validation data dropdown list?
I'm trying to figure out code to have only the contents of cell 'a2' cleared when the contents of cell 'a1' is changed. The issue is that both cells are derived from lists and I don't want the formats cleared.
This is a worksheet to test multiplication tables. I am trying to create a macro button to clear the contents of column F, for the kids to start again?
I need code for a macro that will find a min value in a particular column and based on that min value clear the contents of other cells for that min value.
For example, I have dates in column E such as:
200907 200906 200902 200809 200803 200710 200707
Therefore, I need to find all records for 200707 and clear the contents in other cells.
I can't hardcode the min date because that can change from month to month when new files are created. As can the number of rows.
I have a protected worksheet in which certain calculations are performed based on certain inputs.
For example, let's take Column E:
Starting in cell E4, I have cells in that column which are input cells and further down the column are calculated cells which are locked and whose formulas are hidden.
I was looking for a macro which would go down col E and clear contents of all unlocked cells without messing up any of the protected cells.
Also, there are certain cells in which I want to clear contents and some cells that I want the macro to insert a "0" value.