kevin091
Goto Top

Excel Makro über Batch Datei ausführen

Guten Abend,

ich wollte mal fragen, ob es möglich ist ein Excel Makro über eine Batch Datei auszuführen.

Ich habe in einem Order fünf Excel Tabellen ( Name: T1-T5) die über ein .bat Datei (die sich im selben Ordner befindet) der Reihe nach mit Hilfe von for %%i in (*.csv) do start "" "%%~i" geöffnet werden.

Da die Tabellen Regelmäßig neu erstellt werden habe ich ein Makro geschrieben, welches mir aus allen fünf geöffneten Tabellen die ausgefüllten Werte aus Reihe F kopiert, in der Tabelle fünf eine neues Blatt erstellt und alle Werte Transponiert einfügt. Dieses Makro kann man auch mit einer Tastenkombination ausführen, in meinem Fall STRGm.

Dadurch dass die Tabellen immer neu erstellt werden habe ich dieses Makro unter Personal.XLSB (Sub MSA_V2) abgespeichert, dass ich es immer anwenden kann.

Jetzt wäre meine frage, ob es möglich ist dass man in die .bat Datei einen befehl einfügt, der automatisch nach öffnen von Tabelle fünf (T5) dieses Makro ausführt so dass man die Tastenkombination nicht händisch betätigen muss.


Vielen lieben Dank im Voraus.

Content-Key: 555490

Url: https://administrator.de/contentid/555490

Printed on: April 18, 2024 at 15:04 o'clock

Member: beidermachtvongreyscull
beidermachtvongreyscull Mar 06, 2020 at 20:28:14 (UTC)
Goto Top
Member: Kevin091
Kevin091 Mar 06, 2020 at 20:46:17 (UTC)
Goto Top
Hallo,

vielen Dank für die Antwort.

Das Problem ist, dass ich das Makro unter "Alle offenen Arbeitsmappen" abgespeichert habe da es sich bei den Tabellen um .csv handelt und ich es somit in jeder Excel Tabelle habe.

Deswegen war meine Idee, nach dem ausführen des Befehls "for %%i in (*.csv) do start "" "%%~i"" eine kurze pause einbaue z.B. timeout /t 3
und danach der befehl kommt das Makro in Tabelle 5 auszuführen, evtl. mit Hilfe eines SendKeys Befehls.

In etwa so:

for %%i in (*.csv) do start "" "%%~i"
timeout /t 3
SendKeys"^(m)"

Allerdings funktioniert das so nicht. Ich denke es liegt daran, dass nicht die zuletzt geöffnete CSV selektiert ist und ich weis leider nicht wie das geht. face-smile
Member: beidermachtvongreyscull
beidermachtvongreyscull Mar 06, 2020 at 21:04:55 (UTC)
Goto Top
Entschuldigung,

ich habe diese Info überlesen.
Member: TK1987
TK1987 Mar 11, 2020 updated at 11:14:33 (UTC)
Goto Top
Moin,

mit Powershell wäre sowas möglich.

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

# Benutzerabfragen abschalten
  $Excel.DisplayAlerts=$False

# Persönliche Makromappe öffnen
  $Makromappe=$Excel.Workbooks.open("$ENV:APPDATA\Microsoft\Excel\XLSTART\PERSONAL.xlsb")  

# Mappe öffnen
  $Mappe1=$Excel.Workbooks.open("C:\PFAD\ZUR\EXCEL\MAPPE.xlsx")  

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

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

# Excel schließen
  $Excel.Quit()

Gruß Thomas