# Excel Macro ausführen ohne dass sich Excel öffnet



## JavaBernd (31. August 2010)

Hallo Zusammen,

ich verwende ein Excel-Macro um automatisiert Werte in ein Sheet eintragen zu lassen und die Datei dann unter einem anderen Namen abzuspeichern. Mein Macro wird beim öffnen durch das open-event direkt ausgeführt (wenn eine spezielle Umgebungsvariable gesetzt ist) und schließt das Fenster danach auch wieder. Das funktioniert alles wunderbar. 

Mein Problem... bzw. meine Frage: Ist es möglich, und wenn ja, wie, das Macro auszuführen, ohne dass sich Excel öffnet (also das Fenster aufgeht)?
Das stört schon ziemlich, vor allem, weil es als Automatisierung einer Benutzereingabe gedacht ist... Und Benutzer sehen nicht gerne ein auf- und danach schnell zugehendes Excel-Sheet.

Vielen Dank für Eure Hilfe!
JavaBernd


----------



## tombe (31. August 2010)

Schau mal ob du mit Application.Visible = True/False gleich zu Beginn bzw. am Ende des Makros etwas machen kannst.


----------



## Yaslaw (31. August 2010)

Oder lagere das ganz in vbscript aus. Dann hast du eine Scriptdatei die das ganze aussführt un darin kannst du die Applikation als visible=false setzen


----------



## JavaBernd (31. August 2010)

Hallo Zusammen,

Application.Visible=False verkürzt  zwar die Zeit, die Excel angezeigt wird um einiges.. aber ein Aufflackern ist immer noch da.
Die Idee mit VBScript klingt gut. Ich werd mal nach Code suchen und es ausprobieren.

Danke euch zwei schon mal!

MfG
JavaBernd


----------



## tombe (31. August 2010)

Stimmt damit ist es wirklich einfach:


```
dim e
set e = createobject("Excel.Application")
 
e.visible = false
e.workbooks.open "C:\Mappe1.xls"

e.Wait (Now + TimeValue("0:00:05"))
e.Visible = True
```

Nur mal so als Beispiel. Excel wird unsichtbar geöffnet, dann wird 5 Sekunden gewartet (was man natürlich nicht sieht) und dann erscheint Excel doch.


----------



## JavaBernd (31. August 2010)

Hallo tombe,

wie würde ich in deinem VBS mein Macro starten?
Ich habe es mit e.Run Macroname versucht... aber nichts passierte.

Mein Macro ist in Modul1, hat das was damit zu tun? 

Danke!

MfG
JavaBernd


----------



## tombe (31. August 2010)

Hier gibt es einen Beitrag wo es auch darum geht: http://www.tutorials.de/office-anwe...kro-mit-externem-vbs-programm-ausfuehren.html

Da du aber schreibst dein Makro wird beim Öffnen der Excel Datei gestartet, kannst du es doch auch so lassen und nur den Dateinamen angeben!

Ich weiß jetzt nur nicht was passiert wenn dein Makro Excel auch beendet ohne das es wieder auf sichtbar umgestellt wurde.
Dann würde ich das Beenden aus dem Makro rausnehmen und über diese Anweisung in das VB-Skript eingeben.


----------



## JavaBernd (31. August 2010)

Hallo Zusammen,

es funktioniert.
Ich hatte e.Run Macroname die Anführungsstriche vergessen. Es geht nun mit e.Run "Macroname"

Vielen Dank für Eure Hilfe!

MfG
JavaBernd


----------

