VBA Shell Command On A .BAT (batch) File
I was trying to run the shell command in VBA (excel2007) on a .BAT(batch) file. While running the macro, the DOS command prompt appears and goes away in a flash but the function of the .bat is not performed which makes me think that the shell command isnt functioning properly. I had this proper earlier also with a few Exe's.
the line of the macro that calls is (c is the path for the batch file) :
Call Shell(c, vbNormalFocus)
Could any of you help me with some suggestions regarding this problem.
Just to confirm, the batch file on itself works absolutely fine and it looks like it doesnt take more than 2 seconds to run it. It also does not wait for any input from the macro. it is an individual batch just included in the macro.
View Complete Thread with Replies
Related Forum Messages:
VBA Shell Command To A Launch Applications On All Computers (no File Paths)
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?
Shell Command In Vba
I have to run command prompt from with my VBA code , and run an application passing it 2 filenames and redirecting the output of the application to a third file. Also my VBA script should wait for the application to complete running before getting back to the next line of execution. HEre is what i have coded so far :
Dim dosCmd As String
dosCmd = "purge.exe input1.txt input2.txt >> opFile.txt"
Call Shell("cmd.exe " & dosCmd, vbNormalFocus)
Now this code ends up just opening the command prompt and nothing else. It does not run purge.exe.
Way To Enter A Second Shell Command After The First One
I have written a Shell command. It is very simple and designed to open another software. Here it is:
Dim X As StringX = Shell("C:Program FilesMicrosoft OfficeOFFICE11xlview.exe", vbNormal)
Is there a command that will close the open program? Something along the lines of
But more importantly, is there a way to enter a second shell command after the first one that will have XLViewer to open a particular workbook after the viewer is open?
VB Shell Command To Browse Files
I'm in the process of building a user form that required the user to brows for a file, the path of the file that they select is then displayed in the textbox next to the "browse" button in my form. I also have another button next to this which when selected will open the file that is displayed in the textbox previously mentioned.
Iíve been trying the shell command but with no success, I can get the user form to open adobe reader but whenever I try to include that file path for which to open the file I keep getting runtime errors,
Below are a couple of examples that Iíve tried (you'll prob be able to guess from the code that Iím very new to VB in excel).
For additional info the value in the textbox would be something like, "H:My DocumentsPDF Filesmyfile.pdf"
Dim GetFile As String
Shell "C:Program FilesAdobeReader 8.0ReaderAcroRd32.exe", vbNormalFocus
'this opens adobe reader but I'm trying to open a specific file
Shell "C:Program FilesAdobeReader 8.0ReaderAcroRd32.exe" & textbox9.value, vbNormalFocus
This produces the runtime error again
Dim GetFile As String
GetFile = TextBox9.Value
Shell "C:Program FilesAdobeReader 8.0ReaderAcroRd32.exe" & GetFile, vbNormalFocus
'this produced a runtime error - to be honest this was an attempt born out of frustration.
I know this is an excel forum but i'm struggling with something. i need to create a batch file that maps a network drive so far my searches have uncovered this
Run Excel Macro From Batch File. Workbook Open
I wanted to run a batch file which does something like,
Dir /b >Test.csv
And then runs an Excel macro once the workbook is open.
I looked into this and discovered that itís not really that possible to run an excel macro through batch file but other options were to use ĎWorkbook_Opení etc.
I thought this might cause problems because Test.csv doesnít contain a macro to auto open and because csvís usually donít like macros.
I do however have personal.xlsb which opens every time if that helps.
Writing Batch File To Remove Spaces From Filenames
I realise this is not strictly an excel question but it forms part of my VBA code within excel
I have been writing a VBA program (with some fantastic help from you guys) part of which writes to a batch file to rename files stored in a given folder. Unfortunately this fails if the original files have spaces in the filenames. The batch file contains command lines such as: ...
Open .ppt File From Command Button
I have created a large process map workbook in excel that links to various areas within the document using command buttons.
However, one of the things I need users to be able to see s in a PowerPoint presentation.
All I need to do is create a command button that links to, and opens this .ppt file.
The .xsl and .ppt files will be distributed in a folder to other members of the team so I need the link to not be specific to my computer. Is it possible to avoid using the full path and just use a short path such as .../desktop/tools/process.xls so that as long as they store the folder on their own desktop the link works?
Turn Off Web Command Bar On Open File
I have a wb with hyperlinks that open other .xls files stored on the LAN. When these files open, the Web Commandbar is displayed. I ran a macro to turn it off, then pasted the following code in the wb module but it doesn't work.
Private Sub Workbook_Open()
Application.CommandBars("Web").Visible = False
Application.Goto Reference:=Worksheets("Deviation Form").Range("A1"), _
Shell To Open Word
not sure why this is not working, it is from Access I know this is the wrong forum but figured I haven't got any answers from anywhere else and it seems like a simple fix
this command fails... i am guessing its to do with the file path having spaces but don't know how to get it to work, what to insert so it will work.
Call Shell("V:Program Files (x86)Microsoft OfficeOFFICE11WINWORD.EXE / L:Best Practice ManualFull Labour Hire Best Practice Manual.doc", 1)
Batch Changes To Graphs
How can I make batch changes to graphs in the same excel workbook (but on different worksheets?)?
In particular, if I have a bunch of graphs, how can I make bulk changes to color, size, axes titles, etc.?
Shell Function To Make This Run From A VB Macro
I'm trying to run an application using a VB macro. The command line provided to me is "C:Program FilesWeb Scraper Plus+PkgExec.exe" -p "5A147DC7-0420-4321-9DEC-02B8D8111A78". This command line works fine from my Run menu. Now how do I write a Shell function to make this run from a VB macro?
Batch Image Saving
Added pictures of the items to include on quotes (the pictures are in a column to the right of all the other details - (these pictures only exist in Excel)).
Our new quoting software tool needs a link to the filename - however, our pictures don't have logical filenames!
Is there a way we can do a batch save as of all these images so it ends up as 'part#'.jpg within folder X?
There are about 6,000 products and will be a bit of zombie work we don't really want to do!
SwitchBoard To Run Batch Files
I have made a userform that works as a switchboard, and when you click on a button it should run a code that runs a batch file.
but for some reason the code does not work, can someone show me where i am going wrong...
Private Sub CommandButton1_Click()
Shell "c:dataexcel oolkit downloadscombine files.bat"
Batch Tool Or Code
i have about 500 excel files that are built to specific format, only some data changes.
I need to make same changes to all the 500 files, so i'm asking that is there any kind of tool (free/commecial) that can batch changes to all files?
Batch Import External Data
I have several thousand text files, each with three columns of numbers. My goal is to convert each of these to a dbf file with three distinct columns (which is why simply renaming each with .dbf at the end doesn't work.) I can do this for an individual file by using the "Import External Data" Tool in Excel, selecting the "Fixed Width" option (which divides the figures into three distinct columns), and then saving the file as a dbf. I need to do this for several thousand files, however, so I can't do each by hand.
Batch Process 1 Macro In Multiple Files
I have a collection of about 200 .xls files in a folder, each contain the same macro. I now need to run this macro in all 200 files and save them but to do this manually will take hours. is there anyway to set excel to batch process a macro in multiple files?? Or maybe i can write a new macro to open up each workbook, run, then save and exit??
What Command Is Executing Or What Was Last Command Used
Is there any way to tell (from VBA) what GUI command is currently in progress or what the last command used was?
On a wish list perhaps: Application.LastCommand and/or Application.CurrentCommand
Let's say I'm in the "Sheet_Change" event and want to know what caused the change. Was the event triggered by "Delete", "Paste", "Keystrokes" ...
AutoCAD VBA has "Begin_Command (CommandName as String)" and "End_Command (CommandName as String)" events which I find very useful. Basically I'd like to emulate that to the greatest extent possible.
Application.Caller does not seem to work for the stated purpose. I've been searching for a workaround by means of reading the "Undo Stack". Numerous articles written by experts state that the undo stack is not accessible from VBA.
I've considered reading the text from the "Undo" button's caption but it just seems like such a hack ... not that this whole idea isn't a hack
Run Command Button Click From Another Command Button
I have a userform with a button on it named But1. Is it possible to store But1 into a variable then activate the But1_Click action using a variable?
Dim strButname As String
Now, how would you activate the But1_Click method using strButname variable. With listboxes you can use the Control(strListboxName) methodology?
This doesn't work, but gives you an idea of what I am trying to do.
Command Button Name / Sort By Command Button
How can I return name of a command button on click? I want to create some sort buttons on a sheet I will use regularly to speed things up. I thought if I could call each sort button by the column letter the button sits in I can use this in a single sub for all buttons
e.g the button sitting in column A is called "A". when i click the button, it returns it's name to a variable which I can then use to sort column A. I know I could create a seperate routine for each button but I was just trying to think of something neater.
I have 2 worksheets. On the first worksheet, i enter a line of different information.
What i want the spreadsheet to do is copy and paste that info onto the 2nd worksheet - wil this require VB atall?
If Or And Command
I have a large amount of data, of which i need to perfrom a command to show either true or false result.
H Column has a range of number from 1 through 260
L Column has different text entrys 'pen' pencil' 'tape' etc..
The aim of the formula is to show a true result
if the number in the H Column is larger than 30
if the text is equal to either pen or pencil
Command Text VBA
I recorded this SQL query and got this and a Connection string, the query kind of works but i want to be able to edit more. Can someone tell me what does what in this huge string, i want to be able to edit the MatsViewerView.SpecType and other things like i can edit the lot number=2007312RC (very end of string). P.S. sorry about the formatting, i guess this is what excel does when it records a query onto a macro.
.CommandText = Array( _
"SELECT MatsViewerView.SpecType, MatsViewerView.LotNumber, MatsViewerView.WaferNumber, MatsViewerView.DieNumber, MatsViewerView.TestDate, PostAnalysis.Description, PostAnalysis.Achieved, WPGain1.WPGain" _
i need to merge several columns together with a comma seperator. but there are some columns with only set of data in and sometimes 6 columns with data. so i end of with something looking like WC,,,,, or GAU,MAJ,CHEM,,, etc.
i have over 6000 lines so don't feel like cleaning up manually.
How Use The Vlookup Command
I'm trying to figure out how use the Vlookup command. ( Sheet to Sheet, same workbook) Can someone explain the process one goes through to set this up? I have a grip on most of it but seem to be missing some small step.
What I have is this: On one sheet I have 50+ rows of information. Each row has 3 columns, the column number, text which describes a type of construction, and then the last column has the associated R-value. I want the user to be able to use a pull down in a cell on another sheet which describes the contruction and then return the R-value associated with that constrution.
there is a vba function that is similar to a sql decode command. Something similar to this....
In this example, the function will return the month number when given the month name.
does a command like this exist?
FIND Command In VBA
I need to find the row number of the first instance of the string 'TIMEACT
in column A. I know that it must exist at some point in column A, but I do not know where. Column A might have 100,000 entries... ie: a very large number, so I'd appreciate it if the code could be very general.
Dynamic Max, Is It The Right Command
I'm able to calculate the max each 20 cells. Right?
If yes, how can I put that value into B1 ?
Custom Command Bar
I am trying to add aright click menu item a cell.
I am using the following code in a module.
Set nbar = Application.CommandBars("Cell")
Set ntrnew = nbar.Controls.Add(Type:=msoControlButton)
ntrnew.Caption = "Paste In"
ntrnew.Visible = True
ntrnew.BeginGroup = True
ntrnew.FaceId = 110
ntrnew.OnAction = "Test"
To trigger the first code when needed.
I know this all works when I put it in brand new workbook it works my custom menu appears and I can run the the "Test sub"
However as soon as I put this in the workbook where I want this to work it does not show the menu.
It is there though as when I step through the remove Sub I can see it matched and then deleted.
I thought at first it was protection but that is now removed but still no joy.
I can not see any setting that controls these sub menus.
I have searched this topic but I came up with nothing regarding my exact situation.
I have 5 buttons on sheet 1. I want them to all direct me to another sheet in the same workbook. However, some buttons will contain more than one sheet.
Example: Button 1 will direct me to 4 different sheets. Is this possible?
Also, When I open the workbook, I see many sheets that I am working from but I do not want them to show up when I open the workbook. The only way to see these sheets is to click on the command buttons at the top of sheet 1.
OR Function / Command
I am trying to get the OR command or something that may work in a similiar fashion to work on this particular formula.
In this formula I want to be able to see if DEALLIST[Sales1], OR EALLIST[Sales2] is equal to $E$9, if they are then I want the formula to continue. I have tried this but it returns every row in my table starting from row 1 through 1000.
Command Bar Too Long
1. if I have a custom command Bar that is very long and I want it displayed in two rows how do I code it to start a new row at a certain point (button)?
- can I control the length of it?
2. How do I make the Formatting toolbar inactive on opening a particular workbook?
IF Command: Depending On This Value
I have a sheet in which I have a sum then depending on this value I want the next cell, F4, to have one of four outputs
If the value in F3 is;
Less than 1 F4 should show 9
between 1 and 2 F3 should show 16
Between 2 and 3 F3 should show 25
Greater than 3 F3 should show 36.
I have used IF to get the correct result when F3 is less than one but cannot work out how to add the other three results.
If Command In BeforePrint
The following code is not working like I thought it would. I've got 4 named cells on a worksheet, and if any of them are blank, I don't want the user to be able to print it. What am I missing? Is it something with my Cancel = True statement?
I have VBA code that hides and display columns. I have it coded in between Application.ScreenUpdating = False and Application.ScreenUpdating = True commands thinking that it will not show all the flashing and movement of columns.
New Command Icon
I'm looking to have a doc where people time stamp their start and stop times. I have found that Control(apple) - Shift -semi colon works. The problem i'm having is that I want people to be able to use a command icon in their toolbars for this task as opposed to people have to use the keyboard. I can use a button with a macro but this is not possible as our excel corrupts when there are too many macro's
Getting Rid Of Command Buttons
I have a range of cells (A1:D5) identified within a worksheet (worksheetA) as part of a user input form.
When a certain condition exists, a routine is executed that copies a range of cells (C1:F5) from another worksheet (worksheetB) to this defined range. The copied area consists of two command buttons. They get copied and pasted no problem.
When I want to reset (blank it out of its contents) my range in worksheetA from I copy another range over of just a range of blank shaded cells. However, doing this does not eliminate the command buttons left in the range on previous pasting.
How do I delete these command buttons left from previous pasting activities when I wish to reset my range?