Controlling Non-Microsoft Applications With VBA
Sep 7, 2009How can I control non-Microsoft applications using VBA? For example, how can I open a pdf file, print it and then close Acrobat Reader?
View 5 RepliesHow can I control non-Microsoft applications using VBA? For example, how can I open a pdf file, print it and then close Acrobat Reader?
View 5 RepliesIf the admins or you would like to change or recommend a change, I am trying to figure out what the code would look like for cells B22:B28. I need it to count the number of occurrences of the part number in A4:A17 and then combine the applications from the corresponding cells in column F (F4:F170 into a single cell (B22:B28).
On sheet 2 I would manually copy/paste the list of part #s from sheet 1 and remove duplicates. The add the formula that I can't figure out into column 2.
I am trying to run multiple applications. I can run one application i.e.
Application.Run (Sheets("Sheet2").Range("A8").Value) but not multiple i.e Application.Run (Sheets("Sheet2").Range("A8").Value) & Application.Run (Sheets("Sheet2").Range("A9").Value) at the same time.
I have also tried Application.Run (Sheets("Sheet2").Range("A8:A9").Value) but to no avail.
A VBA macro uses the Shell command to open several DOS command boxes. Each DOS command box is copying a file from one location to another. Since I am copying the files over a network, it is most efficient to copy the files in parallel (simultaneously) rather than sequentially. I would like to pause the program until all of the files are copied, i.e., until all of the DOS command boxes have closed. Is there a way to pause the program until all command boxes are complete?
View 1 Replies View RelatedI have a macro that cycles every 5 minutes. I have tried everything I can to get this program to run while I modify a sheet in the workbook to no avail. I have however figured out that if I open up a separate excel application that my macro can continuously run without preventing me from modifying the other application. Now I need to figure out a way toggle between the two excel application windows if a condition is met. The basis of this is to allow production associates to create a schedule and modify it while a macro looks into the defect database and if a defect becomes too problematic, the macro interrupts the schedule to display the issue.
View 2 Replies View RelatedIs there any way to access all the applications which are opened through only Excel.. Like creating a menu which will list all applications that are running.. like Word., other excel workbooks,Notepads etc?
I am using MS Word to create a list to go into Excel, it seems advantageous to do it this way because I'm using the Heading Outline Numbering feature of Word.
Presently my macro assumes the word document is closed. How do I modify the macro to:
1. check if the file is open?
2. if already open, switch the focus to word?
3. switch the focus back to excel?
Sub GetDataFromWordDoc()
Dim FileToOpen As String
FileToOpen = ThisWorkbook.Path & "5Whys.doc"
Sheets("Data1").Select
' MsgBox "Active sheet is " & ActiveSheet. Name ' My check
ActiveSheet.Range("WordClear").Select ' Existing data to remove
Selection.Clear
Set appWD = CreateObject("Word.Application")
' here I would like to check if the word file is open
appWD.Documents.Open Filename:=FileToOpen '
appWD.Visible = True
appWD.Selection.WholeStory
appWD.Selection.Copy
Range("WTarget").Select ' Single cell range to start paste
ActiveSheet.PasteSpecial Format:="Text", Link:=False, DisplayAsIcon:= _
False
'Range("D3").Select
'ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Sheets("5_Why_O").Select
' At this point word in the fore, excel in the back,
End Sub
Is it possible to have a query that takes data from external applications?
View 3 Replies View Relatedso i'm building an application that'll allow users to manipulate records in Excel with just a GUI, using Userforms, Modules and Class Modules. it's all working but i'm feeling like i skipped a little on structuring it properly.
for example (from my Java work in college), you'd call just one object from the main method, which would create a GUI object, and create/manipulate instances of the different Classes when buttons are pushed. basically you one object whose main created other objects, who ran procedures, etc. what i'm hoping for is to make it as modular and easy to maintain as possible. would anyone have a good resource for optimising a medium-sized application? (the tips Excel/VBA Golden Rules. These Should NOT Be Optional were very good, by the way.)
I'm using a VBA UserForm (ShowModal=False) as the front-end on a spreadsheet for logging purposes. Here's the progression of the problem:
1. I have the UserForm loaded and the cursor is in any given textbox/ combobox on the form.
2. I switch to another program, then come back to the UserForm.
3. The cursor no longer appears in whatever textbox/combobox I was in when I left the UserForm. If I type, nothing happens (I have to click the field again first, then type).
However, if I TAB, it will go to the next field in the Tab Order just fine. It seems that the control has "pseudo-focus"--it knows which field to tab to next, but the control won't accept input unless you click it. The odd thing is--this UserForm has a button which launches another "child" UserForm. That "child" UserForm does not have this problem.
The VBA shell command is as follows:
programPath = "C:Program FilesInternet Exploreriexplore.exe" ' works
'programPath = "iexplore.exe" ' does not work
Shell programPath + " " + fileToLaunch, vbNormalFocus
but the drawback is that the invoked program (iexplore.exe, at least in my case) needs to have the FULL PATH to where the program exists = the "C:Program FilesInternet Explorer" which may or may not work on someone elses computer. This hardcoding will not work and is not transportable.
Is there a trick to find where the executing program lives? or launching it without the path?
I am using vba to control internet explorer and return the inner html. To do this I have something like:
Dim arrinnerhtml As Variant
arrinnerhtml = IE.document.body.innerhtml
My problem is that I can’t get the meta description and keywords tags. The title tag seems relatively easy using:
Dim Title As String
Title = ie.document.Title
Is there a relatively simple way to do this for the description and keywords tags? It’d be nice if it was ie.document.description although it doesn’t seem to be. I’m obviously missing a trick here.
Following up on a tread from Sailor64, I tried to use a code DonkeyOte created,
View 2 Replies View Relatedhow to liberate only the sheets already opened by this user, even after he/she has closed the workbook? It means that when this user re-open the workbook, only the password for this step (workbook) and of course for the sheets still closed (not yet visited), will be requested...
There will be about 20 users, accessing the same file (at least 8 or 9 at the same time), and each one has a different level. For this reason the workbook is also protected: depending on the username and password, I'm trying let excel "knows" what sheet each user can open, without type a password again. trying to illustrating: (all users and password are added by me, using a MasterSheet)
user1 ----- already unprotected sheet9 ----- can open sheet1 to 9 (no password, even re-opening the workbook)
to open the sheet10, a username and a password are required
user2 ----- unprotected sheet3 ----- can open sheet1 to 3 (no password, even re-opening the workbook)
to open the sheet4, a username and a password are required
............. and so on.........
I have data in an Excel worksheet that needs to be entered into a proprietary programme. I believe this is possible using SendKeys but as I need to keep switching back to Excel to get the next bit of data I am unsure as to how to go about this. The program would already be open as it is a dial up situation and I would have to dial into the relevant site first.
View 4 Replies View RelatedI am working on an Excel macro which uses the Shell function to open another application, the AppActivate statement to change focus to that application, and then a series of SendKeys statements to perform tasks for which keystrokes (hotkeys) are available. However, there is one step in the process which does not have a hotkey available, but requires clicking on a drop-down with the mouse. Is there a way to have an Excel macro "click" on something for which a hotkey is not available?
View 1 Replies View RelatedI would like to do something similar to wiL with an employee drop down list. As the user begins to type the name, the drop down would narrow the choices alphabetically or the user could select the drop down list then hit the first letter of the name and go to that letter of the list (i.e. selecting "M" to go to the portion of the list that starts with "M").
View 2 Replies View RelatedI have a spreadsheet with ~30,000 rows of data that is using the "NOW" function. The endusers are having an issue with the spreadsheet having to recalculate everytime they run a filter as the spreadsheet recalculates the formulas everytime.
Is there a way to turn the autocalculate off for this spreadsheet only when it is opened?
I need the formulas to calculate once only when the sheet is initially opened but then turned off after that. When user closes the spreadsheet, the autocalculate needs to be turned back on.
I am working on an excel sheet (2007) with about 8 pivots from the same data (huge db). The 8 pivots take a different cuts of data. One filter element is same across all pivots. (For instance let us say that filter is City names: with 10 different city values in it- NY, London, Chicago etc)
What I would like to do is have a system where I just chose NY in one place and all the 8 pivots should use NY as one of the filters and refreash the data accordingly.
What I am doing now is I got to each pivot, choose NY first and then refreash all for the data.
I have 2 list boxes and want to controll scrool range (View) depending of selection of List Box 2.
Here is my code.
Private Sub UserForm_Initialize()
'ListBox1
Dim lbtarget As MSForms.ListBox
Dim rngSource As Range
Dim arr
Dim I As Long
Set rngSource = Worksheets("Material").Range("F4:K3000")
[Code] ..........
In Excel 2007, I'm writing a macro to create several charts (column) that need to match what a designer has already built. I'm having a devil of a time finding the code I need to create parts of the chart. I've searched the web and this forum, but I must just not be asking the right things.
I can see everything I want to do in the format pop-up window when I right click on the charts in Excel, here is the path:
1) Format Minor Gridlines, Line Style, Dash Type, Rounded Dot
2) Format Axis, Axis Options, Major tick mark type, None
3) Format Axis, Axis Options, Position Axis, Between tick marks
I have a workbook that contains spreadsheets that serve as input sheets to generate reports (other spreadsheeets within the workbook). I did not create user forms as I find them cumbersome to do so. Instead I formatted the input sheets to be extremely user friendly. I protected the sheets so that user can only access the unlocked cells that require inputs.
Question:
Is it possible to control the movement of the cursor by both tab and enter like is done in the user forms. The input cells are spread out in various locations on the spreadsheet - therefore, I would like to drive the direction of the cursor as to what cell to go next after an input is made and entered by either hitting the enter button or tab button.
I have several toggle buttons on a spreadsheet for the user to choose which month they want data for. Can anyone tell me how I can make the toggle button that is in the down position change to the up position and not execute the command again when one of the other toggle buttons is pushed?
View 6 Replies View RelatedImagine a rectangular box, with a horizontal line across it, drawn using excel cells.
This is a representation of a screen that comes in 2 sections - sometimes the upper section is largest, sometimes the lower. (Sky above, land below for example)
Is there a way to draw and control the position of the line in this box, , so that by adding a numeric value in two adjecent cells, for example 75 25 would give more "sky" (the line towards the bottom) and 25 75 would give more "land" (The line towards the top)?
1) What function can I use to replace a specific cell in spreadsheet 2 with what I type in a specific cell in spreadsheet 1 (e.g. type red in spreadsheet 1 in A1 and it will replace a blank cell A1 in spreadsheet 2 with red)? I have around a hundred spreadsheets which I need to name by typing a name in cell A1. Rather than doing this, I already have the names of the spreadsheets in a column.
2) Is there anyway to control the attributes of cells in another spreadsheet? E.g. change to bold, red and specific size font in cell A1 in spreadsheet 2 using cell A1 in spreadsheet 1.
I have a userform created to enter clients information which by submitting goes to sheet1 ..
Now the challenge is i want to make sure that no duplicate entries are entered thru userform.
And if duplicate company name is entered then all the client details of the other fields of the userform shall display the values of previous entry so that i can edit the latest changes to the sheet.
A while back I was assisted with trying to prevent excessive screen flashing...
I was originally using the Application.ScreenUpdating=False method...but it was still a little jumpy... so Richard Schollar (a valued member in our forum) helped me with this code and it seemed to work...
Now I am trying to apply it again to another macro and it is not working so well. The thing I found is that on some people's computers it does work well, but not on mine.
Does anyone know why that is and how I can fix it so it doesn't flash on mine either?
how to fix my excel 2003 run-time error 438 "Object doesn't support this property or method" error? The VBE highlights this line of
View 4 Replies View RelatedThe below code and variances of it has always worked for me when controling he pivot fields, however this no longer works in excel 2010 and i cannot seem to come up with a work around.
Code:
Sub Pivot_Date()
Application.ScreenUpdating = False
Dim pvtTable As PivotTable
Dim pvtField As PivotField
Dim pvtItem As PivotItem
Dim filterCell As String
[Code] .......
Its worth noting that this will work wen selecting all but not for individual fields. I have also tried skipping the loop ad simply setting the current page to the ilter cell but this doesn't work either.
I am trying to change the text that appears on a button on a worksheet via a macro. There is only one button on the worksheet so in the macro I use
MyCaption = activecell.value 'Pick up the button text from the spreadsheet
For each sh in activesheet.shapes
sh.caption = MyCaption
'I know this would do all, but only one button as I said
next sh
which generates "Object doesn't support this property or method".
This is strange because if you get the properties box up, Caption definitely shows as a property of a button control.