Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
492to496
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
492to496
492to496
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
VBA : Alle Workbook bis auf eines schliessen
30.09.2004 11:01:34
Joe
hiho,
hab das problem, dass ich am ende meines makros immer n haufen leerer mappen
(fallen beim SaveAs) und die haupttabelle auf hab.
wie könnte ich das in VBA lösen, alle offenen woorkbooks bis auf ein benanntes ( in meinem fall das "hauptprogramm" ) zu schliessen ?!
hoffe ihr könnt mir helfen !
Danke im voraus...
Joe
AW: VBA : Alle Workbook bis auf eines schliessen
Dr.
Stattdessen baust Du besser ein ActiveWorkbook.Close nach dem Saven ein.
AW: VBA : Alle Workbook bis auf eines schliessen
Joe
das hab ich ja...
es läuft so:
er öffnet n neues workbook
füllt es mit daten aus der haupt-tabelle
zeigt mit die saveAs-box mit names-vorschlag an
und schliesst workbook nach dem speichern
allerdings is ja jetzt auch noch ne leere mappe offen also das ursprungs-work-book..ich poste es einfach mal :

Sub Donnerstag()
Dim Neue As Workbook
Set Neue = Workbooks.Add
Workbooks.Add
Windows("Tagesbilanz.xls").Activate
Sheets("Auswertung").Select
ActiveSheet.ChartObjects("Diagramm 5").Activate
ActiveChart.ChartArea.Copy
ActiveWindow.Visible = False
Neue.Activate
Range("A28").Select
ActiveSheet.Paste
ActiveWindow.Visible = False
u.s.w.
Windows("Tagesbilanz.xls").Activate
Sheets("Tabellen-Beschriftung").Select
Application.SendKeys Range("F6").Value
Neue.Activate
Sheets("Tabelle1").Name = "Woche1"
Sheets("Tabelle2").Name = "Woche2"
Sheets("Tabelle3").Name = "Woche3"
Application.Dialogs(xlDialogSaveAs).Show
ActiveWorkbook.Close
End Sub

hoffe das erklärt die sache...
joe
Anzeige
AW: VBA : Alle Workbook bis auf eines schliessen
Dr.
Jo, dann schliesst Du das Teil nach dem .Copy
AW: VBA : Alle Workbook bis auf eines schliessen
WernerB.
Hallo Joe,
wie gefällt Dir das?

Sub AlleSchliessen()
Dim Wkb As Workbook
For Each Wkb In Workbooks
If Wkb.Name <> ThisWorkbook.Name Then
Wkb.Close SaveChanges:=False
Next Wkb
End Sub

Viel Erfolg wünscht
WernerB.
P.S.: Dieses Forum lebt auch von den Rückmeldungen der Fragesteller an die Antworter !
AW: VBA : Alle Workbook bis auf eines schliessen
Joe
Hiho werner,
das sieht gut aus...werds nach mittagspause gleich mal umsetzen ;)
...hoffe du meinst mit deinem P.S. nicht mich..ich antworte immer und war grad damit beschäftigt einen auszug des makros zwecks beserem verständnis zu posten ( s.o.)
also thx für die lösung!
Joe
Anzeige
AW: VBA : Alle Workbook bis auf eines schliessen
01.10.2004 08:33:36
Joe
Moin moin,
leider klappr der code net so wie er soll :(

Sub AlleSchliessen()
Dim Wkb As Workbook
For Each Wkb In Workbooks
If Wkb.Name <"hier den namen von der datei die OFFEN bleiben soll?"> ThisWorkbook.Name Then   <<-- (was bewirkt "this workbook.name" ?)
Wkb.Close SaveChanges:=False
Next Wkb
End Sub

hmm..was muss ich da ändern ?
er soll ja im grunde alle offenen workbooks als Wkb setzen, dann schauen, ob das activierte mit dem vorgegebenen namen übereinstimmt und falls das net der fall ist, schliessen. das soll mit allen wkb´s gemacht werden und wenn nur noch das eine offen is, soll er den

Sub beenden...
hoffe ihr könnt mir n tip geben..dauert ja leider seine zeit, bis man VBA mit learning by doing begriffen hat :(
besten dank
Joe

Anzeige
AW: VBA : Alle Workbook bis auf eines schliessen
WernerB.
Hallo Joe,
die beiden Pfeile "" sind Operatoren und bedeuten in dieser Kombination "ungleich".
"ThisWorkbook" ist das Workbook (=Mappe bzw. Datei), in dem das Makro steht (egal, wie es heißt).
Berücksichtigt man dies nicht, könnte es sein, dass sich die Datei, die das Makro beinhaltet, selbst schließt (und damit auch das Makro beendet), bevor alle anderen Dateien geschlossen sind.
Selbstverständlich kannst Du den Code noch erweitern, z.B. so:

Sub AlleSchliessen()
Dim Wkb As Workbook
For Each Wkb In Workbooks
If Wkb.Name <> ThisWorkbook.Name And _
Wkb.Name <> "MeineDatei.xls" Then
Wkb.Close SaveChanges:=False
Next Wkb
End Sub

Gruß
WernerB.
Anzeige
AW: VBA : Alle Workbook bis auf eines schliessen
Joe
Moin Werner,
aha..solangsam lichtet sich die sache...mit ThisWorkbook is das natürlich elegant gelöst aber da ich dachte in die eckigen klammern gehört n name, hat das natürlich nie geklappt ;)
habs dann schliesslich mit ner variable gelöst...werd jetzt aber deine lsg. einbauen.
is fehlersicherer!

Sub AlleSchliessen()
Dim Haupt As String
Haupt = InputBox("Name der Haupt-Datei: ", "Schliesser", "Bilanz.xls")
Dim WB As Workbook
For Each WB In Workbooks
If Not WB.Name = Haupt Then WB.Close Else:
Next WB
End Sub

also besten dank für die erläuterung !
sincerly
Joe
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige