Batch-Datei per VBA aufrufen?
#1
Question 
hi, kann ich eine Batch-Datei per VBA aufrufen?

So sieht mein Versuch aus. Aber der macht nix:
Code:
Sub Batchstart()
Dim Pfadname As String
Dim retVal
Pfadname = ActiveWorkbook.Path & "\Starter\test.bat"
retVal = Shell("Pfadname", 1)
End Sub
Top
#2
Code:
Sub M_snb()
    Shell """" & ActiveWorkbook.Path & "\Starter\test.bat"""
End Sub
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
[-] Folgende(r) 1 Nutzer sagt Danke an snb für diesen Beitrag:
  • o0Julia0o
Top
#3
Danke, so funktioniert es jetzt bei mir:
Code:
Dim Pfadname As String
Dim Dateiname As String
Dateiname = Worksheets("Rech").Range("B34")
Pfadname = ActiveWorkbook.Path & "\Starter\"
TaskID = Shell(Pfadname & Dateiname, vbMaximizedFocus)

Kann ich irgendwie sehen, was VBA in die Variablen füllt?
Top
#4
Hallo Julia,

Zitat:Kann ich irgendwie sehen, was VBA in die Variablen füllt?

... wenn Du Deine Variablen in einer MsgBox ausgeben läßt, sollte das ganz einfach möglich sein.
[-] Folgende(r) 1 Nutzer sagt Danke an Käpt'n Blaubär für diesen Beitrag:
  • o0Julia0o
Top
#5
(18.06.2018, 22:08)o0Julia0o schrieb: Kann ich irgendwie sehen, was VBA in die Variablen füllt?

Moin!
Alternativen zur MsgBox:
Öffne per Ansicht, Lokalfenster ein Fenster, welches die Werte der Variablen zur Laufzeit auswirft.
Je nach Code steppt man ihn entweder mittels F8 per Einzelschritt durch
oder setzt zunächst Haltepunkte und steppt mittels F5
(Alternative: zum testen jeweils ein Stop in den Code einfügen)

Deine Variable TaskID ist nicht deklariert!
Was stellst Du mit dem Wert an?

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
[-] Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:
  • o0Julia0o
Top
#6
Thxinks euch!

TaskID hatt ich falsch verstanden, habs jetzt durch Call ersetzt :)


Stimmt - per MsgBox ginge das ja.

Ich bemerke jedoch einen Unterschied zwischen der MsgBox Ausgabe und der Lokalen Fenster Ausgabe.

Bei Messagebox steht der Pfad & Dateiname als solcher kombiniert da - wie gewünscht. Es funktioniert ja auch.

In der Lokalen Fenster Ausgabe, steht sowohl der Pfad als auch Der Dateiname in Anfürungszeichen. Jeweils. So ist es ja eigentlich falsch.

Was ich herausfinden wollte ist, wie es sich mit Leerzeichen im Pfadnamen verhält. Werden diese durch Excel gesamt gerahmt mit Anführungszeichen?

Also z.b.:
"D:\Daten\test1.bat"
oder
D:\Daten\test1.bat

Was ja hier interessant wäre:
"D:\Kinder Daten\test.1bat"
Top
#7
Hi,

doppelte "" bei Leerzeichen
siehe

https://www.ms-office-forum.net/forum/sh...p?t=254664

im Link ist auch 
noch eine Alternative zu shell z.B über WSscript
lg Chris
Feedback nicht vergessen.
[Bild: v.gif]
3a2920576572206973742064656e20646120736f206e65756769657269672e
[-] Folgende(r) 1 Nutzer sagt Danke an chris-ka für diesen Beitrag:
  • o0Julia0o
Top
#8
Jo, danke. Aber macht VBA das jetzt automatisch mit Anführungszeichen mit meinem Code?


Code:
Dim Pfadname As String
Dim Dateiname As String
Dateiname = Worksheets("Rech").Range("B34")
Pfadname = ActiveWorkbook.Path & "\Starter\"
TaskID = Shell(Pfadname & Dateiname, vbMaximizedFocus)

Msg-Box und Lokale Fenster zeigen es ja unterschiedlich an. Daher bin ich mir unsicher, ob die Pfadumschließenden Anführugnszeichen automatisch von VBA gesetzt werden oder nicht.
Top
#9
Hi,

wenn du es so machst, wie es auch schon snb geschrieben hat, bist du auf der sicheren Seite!
lg Chris
Feedback nicht vergessen.
[Bild: v.gif]
3a2920576572206973742064656e20646120736f206e65756769657269672e
[-] Folgende(r) 1 Nutzer sagt Danke an chris-ka für diesen Beitrag:
  • o0Julia0o
Top
#10
Sicher, aber ich muss mit Variablen arbeiten.
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste