Makro per Batch starten
#1
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
Antworten Top
#2
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.
Gruß,
Helmut

Win10 - Office365 / MacOS - Office365
[-] Folgende(r) 1 Nutzer sagt Danke an HKindler für diesen Beitrag:
  • Chris_#
Antworten Top
#3
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
[-] Folgende(r) 1 Nutzer sagt Danke an Fennek für diesen Beitrag:
  • Chris_#
Antworten Top
#4
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
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • Chris_#
Antworten Top
#5
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?
Antworten Top
#6
Hallöchen,

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

"PERSONAL.XLSB!Leitband"
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • Chris_#
Antworten Top
#7
Ach wie dumm von mir, da hätte ich auch selbst drauf kommen können.
Funktioniert nun
DANKE  Thumps_up
Antworten Top


Gehe zu:


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