Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Excel im Hintergrund starten

Forumthread: Excel im Hintergrund starten

Excel im Hintergrund starten
15.01.2003 08:08:50
Bert
Um Exceldaten in einem automatisierten Vorgang bearbeiten zu können muss ich eine XLS-Datei in eine CSV-Datei konvertieren. Dies funktioniert mittels eines Autostartmakros. Das ganze starte ich dann über eine Batchdatei. Mein Problem ist nun, da dies Batchdatei wiederum aus einem Automatisierungstool gestartet wird, muss Excel im Hintergrund laufen. D.h. es darf kein Fenster von Excel aufgehen. Gibt es hier einen Parameter den ich beim Aufruf von Excel in der BAtchdatei mitgeben kann??
Anzeige

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Excel im Hintergrund starten
15.01.2003 14:00:16
ivan
hi
ich denke nicht das du den parameter in deiner *.bat datei eingeben mußt.sondern du must excel sagen wie es starten soll.
gib diesen code in die arbeitsmappe alt+f11

Private Sub Workbook_Open()
Application.Visible = False
UserForm1.Show 'oder was auch immer ausgeführt werden soll
Application.Visible = True
End Sub

webmaster ivan

Anzeige
Re: Excel im Hintergrund starten
15.01.2003 14:07:35
Bert
Um diesen Befehl ausführen zu können muss aber Excel schon gestartet sein. Oder sehe ich das jetzt falsch??
Re: Excel im Hintergrund starten
15.01.2003 18:17:07
ivan
hi nochmal
gib den code in die arbeitsmappe in exel rein speichere excel. und schließe excel.wenn du dann excel mit deiner batch datei aufrufst brauchst dort nur die normalen parameter für den excel aufruf eingeben.excel startet dann mit den einstellungen die du vorher festgelegt hast ganz automatisch!
JA JA SO EINFACH IST DAS
webmaster ivan
Anzeige
Re: Excel im Hintergrund starten
16.01.2003 08:33:16
Bert
Hallo Ivan,

nun, so einfach ist das aber doch nicht. Ich habe deinen Vorschlag ausprobiert. Wenn ich die Batdatei starte, startet Excel kurz und schliesst sich dann wieder. Ich habe 'Application.Visible = False' im auto_open-Makro als erste Zeile eingefügt. Das ist, soweit ich weiss, die früheste Stelle wo ich das in Excel angeben kann.

Gruß
Bert

Anzeige
Re: Excel im Hintergrund starten
16.01.2003 09:24:16
ivan
hi bert
es ist doch einfach.du bist schon kurz vor dem ziel.

Private Sub Workbook_Open()
Application.Visible = False
UserForm1.Show 'hast du die userform erstellt?was soll sie tun
Call macroname 'oder brauchst du nur ein macro das etwas ausführt

Application.Visible = True
End Sub


du must dir irgend etwas einfallen lassen was excel tun soll während es im hintergrund ausgeblendet ist.ansonst frage ich mich warum du excel aufmachen möchtest???
ivan



Anzeige
Re: Excel im Hintergrund starten
16.01.2003 09:51:32
Bert
Hey Ivan,

Es tut mir leid, wenn ich mich etwas dusselig anstelle, aber ich bin nicht so versiert in Excel und Makros(VBA).
Ich starte mit der Bat-Datei(\\102.0.13.99\d_lzdb\programme\microsoft office\office10\excel.exe \\102.0.13.99\AutoMakro.xls) Excel mit der Datei Automakro.xls.
Diese Automakro.xls beinhaltet nur das Automakro. Und das soll folgendes tun:
1. öffnen einer anderen XLS-Datei
2. speichern des Inhaltes als CSV-Datei
3. schliessen von Excel
Soweit ich das kenne kann ich alle Aktivitäten nur ins Auto(start)makro packen. Oder wird das 'Private Sub Workbook_Open()
' als erstes verarbeitet?

Bert



Anzeige
Re: Excel im Hintergrund starten
16.01.2003 22:10:35
ivan
hi
ganz genau
Private Sub Workbook_Open()
ist die erste anlaufstelle
habe eine idee wie die du die wartezeit überbrücken kanst während deine batch datei im hintergrund speichert.
1.gehe in den entwicklungsmodus von excel mit alt+f11
2.klick das menü einfügen an und modul einfügen
3.klick auf das symbol wekzeugsammlung
4.klick auf in die nun geöffnete werzeugsammlung auf befehlsschaltfläche und erstelle sie auf der userform1
5.klick nun auf diese erstellte schaltfläche doppelt
6.kopiere nachstehenden code in das sich öffnende script

Private Sub CommandButton1_Click()
Application.Visible = True
Application.DisplayAlerts = False
Application.Quit
ThisWorkbook.Close savechanges:=False
End Sub

7.doppelklicke nun (links)auf Userform1
8.stell die größe der userform ein mit der maus ziehen so wie möchtest
9.und zu guter letzt doppelklick auf diese abeitsmappe
und nun der den nachstehenden code dort einfügen

Private Sub Workbook_Open()
Application.Visible = False
UserForm1.Show

End Sub

10.arbeitsmappe speichern und schließen fertig.
nun hast du excel so programmiert das es nur mit der userform1 startet.und die userform hat einen button zum beenden-
wenn du den anklickst wird anklickst wird alles ohne speichern geschlossen.vor allem wartet excel nun solange bis deine batsch alles erledigt hat.
versuches mal
webmaster ivan

Anzeige
Re: Excel im Hintergrund starten
18.01.2003 17:07:30
Bert
Hey Ivan,

ich habe deinen Vorschlag nochmals ausprobiert. Auf diese Weise komme ich aber nicht darum herum, dass Excel erst einmal geöffnet wird, dann wird das Userrom1 geladen und Excel selber wird wieder geschlossen. Das Userform1 wartet auf den Klick und wird dann ebenfalls geschlossen. Mein Ziel ist es aber, dass das Excelfenster nicht geöffnet wird und nur das Userform1 zu sehen ist. Ich glaube das geht, wenn überhaupt, nur mit einem Parameter beim Starten von Excel. Denn um alle Anweisungen innerhalb einer Arbeitsmappe ausführen zu können muss nun mal Excel erst gestartet werden und dann ist es schon sichtbar.

Bert

Anzeige
Re: Excel im Hintergrund starten
18.01.2003 19:16:59
ivan
hi
das war nur ein beispiel du kanst statt der userform auch ein macro aufrufen das dir die datei in csv datei abspeichert !!!
statt uerform1.show schreibst du Call macro1.
lösche den comandbutton und die userform1 wieder raus und zeichne mit dem macro editor ein macro auf was excel alles tun soll.speichere das macro und gib den code in die diese arbeitsmappe fertig!!
DANN KANN MAN DEN VORGANG UND EXCEL NICHT SEHEN.

Private Sub Workbook_Open()
Application.Visible = False
Call macro1
Application.Visible = True
End Sub

IVAN


Anzeige
Re: Excel im Hintergrund starten
19.01.2003 19:35:41
Bert
Hey Ivan,

also irgendwas muss ich anders machen als Du mir sagst. Es erscheint immer noch, wenn auch nur kurz das Excelfenster.


Bert

Re: Excel im Hintergrund starten
19.01.2003 20:22:22
ivan
hi
ich habe was ausgegraben kopiere alles in ein normales modul
speichern und alles schließen

Dim CdbList()
Dim Status_StandardBar As Boolean
Dim Status_FormulaBar As Boolean
Dim Status_HorScroll As Boolean
Dim Status_StatusBar As Boolean
Dim Status_VerScroll As Boolean
Dim Status_Gridlines As Boolean
Dim Status_Headings As Boolean
Dim Status_WorkbookTabs As Boolean
Dim xCn%
Dim xCdbList()


Sub Auto_Open()

Dim Cdb As CommandBar
''.....
Dim bar
For Each bar In Application.CommandBars
bar.Enabled = False
Next

Cn = 1
For Each Cdb In Application.CommandBars
If Cdb.Visible And Cdb.Type <> msoBarTypeMenuBar Then
ReDim Preserve CdbList(Cn)
CdbList(Cn) = Cdb.Name
Cn = Cn + 1
Cdb.Visible = False
End If
Next

With ActiveWindow
Status_HorScroll = .DisplayHorizontalScrollBar
If .DisplayHorizontalScrollBar = True Then .DisplayHorizontalScrollBar = False

Status_VerScroll = .DisplayVerticalScrollBar
If .DisplayVerticalScrollBar = True Then .DisplayVerticalScrollBar = False

Status_Gridlines = .DisplayGridlines
If .DisplayGridlines = True Then .DisplayGridlines = False

Status_Headings = .DisplayHeadings
If .DisplayHeadings = True Then .DisplayHeadings = False

Status_WorkbookTabs = .DisplayWorkbookTabs
If .DisplayWorkbookTabs = True Then .DisplayWorkbookTabs = False

End With

With Application
Status_StatusBar = .DisplayStatusBar
If .DisplayStatusBar = True Then .DisplayStatusBar = False

Status_FormulaBar = .DisplayFormulaBar
If .DisplayFormulaBar = True Then .DisplayFormulaBar = False
End With

CommandBars(1).Enabled = False
Application.DisplayFullScreen = False

End Sub

Sub Auto_Close()

Dim bar
For Each bar In Application.CommandBars
bar.Enabled = True
Next

Dim Cdb As CommandBar
Dim Ci%


For Ci = 1 To Cn - 1
Application.CommandBars(CdbList(Ci)).Visible = True
Next Ci

With ActiveWindow
.DisplayHeadings = Status_Headings
.DisplayHorizontalScrollBar = Status_HorScroll
.DisplayVerticalScrollBar = Status_VerScroll
.DisplayGridlines = Status_Gridlines
.DisplayWorkbookTabs = Status_WorkbookTabs
End With

With Application
.DisplayStatusBar = Status_StatusBar
.DisplayFormulaBar = Status_FormulaBar
End With

CommandBars(1).Enabled = True

'Dim Cdb As CommandBar

Cn = 1
For Each Cdb In Application.CommandBars
If Cdb.Visible And Cdb.Type <> msoBarTypeMenuBar Then
ReDim Preserve CdbList(Cn)
CdbList(Cn) = Cdb.Name
Cn = Cn + 1
Cdb.Visible = True
End If
Next

With ActiveWindow
Status_HorScroll = .DisplayHorizontalScrollBar
If .DisplayHorizontalScrollBar = False Then .DisplayHorizontalScrollBar = True

Status_VerScroll = .DisplayVerticalScrollBar
If .DisplayVerticalScrollBar = False Then .DisplayVerticalScrollBar = True

Status_Gridlines = .DisplayGridlines
If .DisplayGridlines = False Then .DisplayGridlines = True

Status_Headings = .DisplayHeadings
If .DisplayHeadings = False Then .DisplayHeadings = True

Status_WorkbookTabs = .DisplayWorkbookTabs
If .DisplayWorkbookTabs = Falsehen .DisplayWorkbookTabs= True

End With

With Application
Status_StatusBar = .DisplayStatusBar
If .DisplayStatusBar = False Then .DisplayStatusBar = True

Status_FormulaBar = .DisplayFormulaBar
If .DisplayFormulaBar = False Then .DisplayFormulaBar = True
End With

Application.CommandBars("Standard").Visible = True
Application.CommandBars("Formatting").Visible = True
Application.DisplayFullScreen = False

End Sub

damit wird alles ausgeblendendet und eingeblendet was excel so hat.
wenn du deine mappe nicht findest dann fang die prozedur mit
escape ab.danach führe das macro Sub auto_close aus.

viel spass
ivan


Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Excel im Hintergrund starten


Schritt-für-Schritt-Anleitung

Um Excel im Hintergrund zu starten, ohne dass das Fenster sichtbar wird, kannst du die folgenden Schritte befolgen:

  1. Excel öffnen: Drücke Alt + F11, um den VBA-Editor zu öffnen.

  2. Makro erstellen: Füge diesen Code in das Modul ein:

    Private Sub Workbook_Open()
       Application.Visible = False
       ' Hier kannst du dein Makro aufrufen oder andere Aktionen durchführen
       Call MeinMakro
       Application.Visible = True
    End Sub
  3. Batch-Datei erstellen: Erstelle eine Batch-Datei (.bat), um Excel mit dem Makro zu starten. Der Befehl könnte so aussehen:

    start /min excel.exe "Pfad\zu\deiner\Datei.xls"

    Mit dem Schalter /min wird das Excel-Fenster minimiert gestartet.

  4. Batch-Datei ausführen: Starte die Batch-Datei, um Excel im Hintergrund auszuführen.


Häufige Fehler und Lösungen

  • Problem: Excel startet und schließt sich sofort wieder.

    • Lösung: Stelle sicher, dass das Auto_Open-Makro korrekt eingerichtet ist. Es sollte die Zeile Application.Visible = False als erste enthalten.
  • Problem: Das Excel-Fenster wird kurz sichtbar, bevor es minimiert wird.

    • Lösung: Überprüfe die Batch-Datei und stelle sicher, dass du die richtigen Parameter verwendest. Möglicherweise kann ein Application.DisplayAlerts = False hilfreich sein, um Benachrichtigungen zu vermeiden.

Alternative Methoden

Du kannst auch andere Ansätze in Betracht ziehen, um Excel im Hintergrund auszuführen. Eine Möglichkeit ist die Verwendung von VBScript:

Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = False
objExcel.Workbooks.Open "Pfad\zu\deiner\Datei.xls"
' Führe weitere Operationen hier durch
objExcel.Quit

Diese Methode ermöglicht es dir, Excel im Hintergrund zu steuern, ohne dass das Programmfenster angezeigt wird.


Praktische Beispiele

  1. CSV-Konvertierung mit Makro:

    • Erstelle ein Makro, das eine XLS-Datei öffnet und den Inhalt als CSV-Datei speichert. Beispiel:
    Sub MeinMakro()
       Workbooks.Open "Pfad\zu\deiner\Datei.xls"
       ActiveWorkbook.SaveAs "Pfad\zu\deiner\Datei.csv", xlCSV
       ActiveWorkbook.Close
    End Sub
  2. Batch-Datei zur Automatisierung:

    • Erstelle eine Batch-Datei, um das Makro automatisch zu starten:
    @echo off
    start /min excel.exe "Pfad\zu\deiner\Datei.xls"

Tipps für Profis

  • Batch-Datei in EXE umwandeln: Wenn du die Batch-Datei in eine EXE-Datei umwandeln möchtest, kannst du Tools wie Bat To Exe Converter verwenden. Das ermöglicht eine einfachere Verteilung und Nutzung.

  • VBA im Hintergrund ausführen: Überlege, ob du VBA-Skripte verwenden möchtest, um Hintergrundaufgaben in Excel zu automatisieren. Dies kann die Benutzeroberfläche von Excel minimieren und die Verarbeitungsgeschwindigkeit erhöhen.


FAQ: Häufige Fragen

1. Frage
Wie kann ich ein Makro erstellen, das automatisch ausgeführt wird, wenn ich Excel starte?
Antwort: Du kannst den Code in das ThisWorkbook-Modul einfügen und die Workbook_Open()-Subroutine verwenden.

2. Frage
Kann ich Excel im Hintergrund starten, ohne eine Batch-Datei zu verwenden?
Antwort: Ja, du kannst VBScript verwenden, um Excel direkt im Hintergrund auszuführen.

3. Frage
Wie verhindere ich, dass Excel beim Starten angezeigt wird?
Antwort: Setze Application.Visible = False am Anfang deines Makros.

4. Frage
Was kann ich tun, wenn Excel nicht im Hintergrund bleibt?
Antwort: Überprüfe deine Batch-Datei und die verwendeten Parameter. Stelle sicher, dass dein Makro keine Benutzeroberflächenobjekte anzeigt.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige