Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

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
Antworten 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
Antworten 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?
Antworten 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.
________________________________________________________________________
wer aufgibt, ohne es versucht zu haben, gibt einfach nur auf!

Grüße aus Norderstedt, Peter
[-] Folgende(r) 1 Nutzer sagt Danke an Käpt'n Blaubär für diesen Beitrag:
  • o0Julia0o
Antworten Top
#5
(18.06.2018, 21: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
Antworten 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"
Antworten 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
Antworten 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.
Antworten 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
Antworten Top
#10
Sicher, aber ich muss mit Variablen arbeiten.
Antworten Top


Gehe zu:


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