Discussion:
Öffnen und schließen von Arbeitsmappen
(zu alt für eine Antwort)
wachi
2006-12-11 07:09:51 UTC
Permalink
Bitte um Hilfe bei folgendem Problem:

Ausgangssituation:
Es gibt eine Erfolgsbilanz, aus welcher die Geschäftsabschlüsse in
eine lokale Produktionsliste ausgelagert werden. Zusätzlich gibt es
noch eine Produktedatei, die mit der Erfolgsbilanz verknüpft ist.

Wenn die Erfolgsbilanz geöffnet wird, werden über Workbook_Open() die
Produktionsliste und die Produktedatei mitgeöffnet (hierbei ist
interessant, dass beim erstmaligen öffnen von Excel in der Taskleiste
nur die letzte geöffnete Datei angezeigt wird - bei abermaligen
öffnen werden alle drei Datein angezeigt ???)

Wird nun die Erfolgsbilanz geschlossen, sollen automatisch auch die
Produktionsliste und die Produktedatei geschlossen werden.

Ich habe im Workbook_BeforeClose Ereignis folgenden Code eingegeben:

Windows("Produkte.xls").Activate
Active.Workbook.Close savechanges:=False
Application.DisplayAlerts = False

Windows("Produktionsliste.xls").Activate
Active.Workbook.Clsoe savechanges:=True

Windows("Erfolgsbilanz.xls").Activate
Active.Workbook.Close savechanges:=False
Application.DisplayAlerts = False


Schließe ich nun die Erfolgsbilanz erhalte ich folgende Fehlermeldung:

Laufzeitfehler 9: Index außerhalb des gültigen Bereichs

Wie schaffe ich es, nach dem Schliessen der Erfolgsbilanz automatisch
die Produktionsliste zu speichern und zu schliessen und die
Produktedatei ohne speichern zu schliessen.

P.S.: Folgender Code klappt, ich will jedoch nicht alle offenen
Exceldatein schliessen:

Dim Mappe as Workbook

For Each Mappe in Application.Workbooks
If Mappe.Name <> this Workbook.Name Then Mappe.Close
Next
Melanie Breden
2006-12-11 07:48:39 UTC
Permalink
Hallo wachi,
Post by wachi
Wird nun die Erfolgsbilanz geschlossen, sollen automatisch auch die
Produktionsliste und die Produktedatei geschlossen werden.
Windows("Produkte.xls").Activate
Active.Workbook.Close savechanges:=False
Application.DisplayAlerts = False
Windows("Produktionsliste.xls").Activate
Active.Workbook.Clsoe savechanges:=True
Windows("Erfolgsbilanz.xls").Activate
Active.Workbook.Close savechanges:=False
Application.DisplayAlerts = False
Laufzeitfehler 9: Index außerhalb des gültigen Bereichs
Wie schaffe ich es, nach dem Schliessen der Erfolgsbilanz automatisch
die Produktionsliste zu speichern und zu schliessen und die
Produktedatei ohne speichern zu schliessen.
versuchs mal ohne Aktivierung der Arbeitsmappen:

Workbooks("Produkte.xls").Close savechanges:=False
Workbooks("Produktionsliste.xls").Close savechanges:=True

Die Datei "Erfolgsbilanz.xls" brauchst du nicht explizit schließen.
Das Ereignis wurde ja ausgelöst, weil diese Datei beendet werden soll.

Um die Speicherabfrage der Erfolgsbilanz zu unterbinden verwende folgenden
Code im BeforeClose-Ereignis:

Me.Saved= True


Mit freundlichen Grüssen
Melanie Breden
--
- Microsoft MVP für Excel -
Microsoft Excel - Die ExpertenTipps http://tinyurl.com/cmned
Das Excel-VBA Codebook http://excel.codebooks.de
Excel-Auftragsprogrammierung
wachi
2006-12-11 08:02:03 UTC
Permalink
Schönen Dank Melanie
wachi
2006-12-11 09:35:51 UTC
Permalink
Post by Melanie Breden
Um die Speicherabfrage der Erfolgsbilanz zu unterbinden verwende folgenden
Me.Saved= True
Wie unterbinde ich die Speicherabfrage, wenn ich die Erfolgsbilanz
NICHT speichern will?

lg. wachi
Melanie Breden
2006-12-11 09:46:32 UTC
Permalink
Hallo wachi,
Post by wachi
Post by Melanie Breden
Um die Speicherabfrage der Erfolgsbilanz zu unterbinden verwende folgenden
Me.Saved= True
Wie unterbinde ich die Speicherabfrage, wenn ich die Erfolgsbilanz
NICHT speichern will?
genau wie oben in der Syntax.

Durch "Saved = True" wird der Speicherstatus der Datei einfach auf True gesetzt
ohne dass die Datei dabei gespeichert wird.
Dadurch entfällt dann eine mögliche Nachfrage ob gespeichert werden soll.
Änderungen werden dabei verworfen.


Mit freundlichen Grüssen
Melanie Breden
--
- Microsoft MVP für Excel -
Microsoft Excel - Die ExpertenTipps http://tinyurl.com/cmned
Das Excel-VBA Codebook http://excel.codebooks.de
Excel-Auftragsprogrammierung
Loading...