Clever-Excel-Forum

Normale Version: Makro per Batch starten
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

bei folgendem Problem benötige ich Unterstützung.

Bei Ausführung einer Batch-Datei wird eine Excel-Datei (Test.xlsx) aus dem Netz geladen.
Anschließend soll diese geöffnet und das Makro "ABC" (Personl.XLS) gestartet werden.

Das funktioniert auch alles ganz gut, nur will das Makro nicht starten

setlocal
set "excelPath=C:\Program Files\Microsoft Office\root\Office16\EXCEL.EXE"
set "filePath=C:\Users\Meier\Downloads\Test.xlsx"

"%excelPath%" "%filePath%" /m"ABC"
endlocal

Viele Grüße
Hi,

ein leeres Makro-Sheet ist leider etwas völlig anderes als der Start eines Makros. 21

Du könntest höchstens eine extra Exceldatei mit dem Makro anlegen und dort im Workbook_Open-Event die heruntergeladene Datei öffnen und dann das Makro ausführen.
Hallo,

im CMD kann eine xlsm-Datei si gestartet werden:

Code:
start c:\temp\Ps_Test.xlsx

Mit dem Workbook.Open-Event kann ein beliebiger Code gestartet werden:

Code:
Application.Run("PERSONAL.xlsb!SagHallo", "Hallo")

Im Beispiel wird der Parameter "Hallo" übergeben.

mfg
Hallöchen,

1)
schon mal so probiert:

... /mABC

?

/mMakroname ist allerdings nur bei Word beschrieben, bei excel nur /m mit anderer Bedeutung Sad

2)
beim Öffnen einer Exceldatei z.B. aus einer batch oder einem script greift die Makrosicherheit, Workbook_Open wird nicht ausgeführt.
Man kann aber Makros aufrufen und ausführen lassen.

3)
Eventuell versuchst Du es mal mit einem vbs-Script, da ist die Programmierung ähnlich VBA

4)
oder mit der Powershell, siehe z.B. dort excel-makro-ueber-batch-datei-ausfuehren
Hallo,

da ich mit den den Vorschlägen 1 -3 nicht wirklich weiterkam, habe ich es mit Powershell versucht (absolutes Neuland 17 ).
Die Umsetzung wurde wie im Beispiel vorgenommen. 

___

# Excel öffnen
  $Excel=New-Object -ComObject Excel.Application
  $Excel.Visible=$True

# Benutzerabfragen abschalten
  $Excel.DisplayAlerts=$False

# Persönliche Makromappe öffnen
  $Makromappe=$Excel.Workbooks.open("C:\Users\Meier\AppData\Roaming\Microsoft\Excel\XLSTART\PERSONAL.xlsb") 

# Mappe öffnen
  $Mappe1=$Excel.Workbooks.open("C:\Users\Meier\Downloads\Test.xlsx") 

# Makro ausführen
  $Excel.run("Leitband") 

# Mappe speichern und schließen
  $Mappe1.save()
  $Mappe1.close()

# Excel schließen
#  $Excel.Quit() 

_____

Nun bekomme ich die Fehlermeldung:

Ausnahme beim Aufrufen von "Run" mit 1 Argument(en):  "Das Makro 'Leitband' kann nicht ausgeführt werden. Das Makro
ist möglicherweise in dieser Arbeitsmappe nicht verfügbar, oder alle Makros wurden deaktiviert."
In C:\Users\Meier\Desktop\it_nrw.ps1:16 Zeichen:3
+  $Excel.run("Leitband")
+  ~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : COMException

___

Wo kann der Fehler liegen?
Hallöchen,

da das Makro in der persönlichen Mappe liegt, müsstest Du das dem Aufruf mitgeben, also z.B.

"PERSONAL.XLSB!Leitband"
Ach wie dumm von mir, da hätte ich auch selbst drauf kommen können.
Funktioniert nun
DANKE  Thumps_up