Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1520to1524
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
Inhaltsverzeichnis

geöffnete Datei schließt sich nicht

geöffnete Datei schließt sich nicht
21.10.2016 17:59:26
Hans-Jürgen
Hallo zusammen,
ich schreibe gerade für das Bürp eine VBA-Anwendung, in der ich auch manchmal Dateien öffne und schließe. Mit dem "Set x = Nothing" habe ich es auch erreicht, dass sie im VBA-Projektexplorer verschwinden, also sauber geschlossen sind.
Ich habe aber jetzt die Aufgabe, aus dem laufenden Workbook (in dem der Code werkelt) einen Sheet herauszukopieren und in einem neuen Workbook zu speichern. Das klappt zwar, aber jede Ausführung "müllt" mir den Projektexplorer zu. Es ist etwas gegen meine "Programmierehre", das so zu lassen.
Hier der auf das wesentliche reduzierte Code (DIM sind natürlich vorhanden)
Set wbKap = ActiveWorkbook
Set wBNeu = Application.Workbooks.Add
wbNeu.SaveAs Filename:= (Pfad)
wbKap.Sheets("zukopierendesblatt").Copy Before:=wbNeu.Sheets(1)
wbNeu.Sheets(Array("Tabelle1", "Tabelle2", "Tabelle3")).Delete
wbNeu.Sheets("zukopierendesblatt").Name = "neuerName"
wbneu.Close SaveChanges:=true
Set wbNeu = Nothing
Set wbKap = Nothing
Nach jeder Ausführung ist die "wbNeu" im Projektexplorer vorhanden. Da das oft ausgeführt wird, stört mich das.
Ich kann mir das nur so erklären, dass durch das "Copy" dort etwas entsteht, was sich nicht mit schließt. (Wie ihr aus meinen Formulierungen schon erkennt, bin ich ein etwas fortgeschrittener Anfänger, mehr nicht)
Was mache ich falsch?
Vielen Dank
Hans-Jürgen

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

Betreff
Datum
Anwender
Anzeige
AW: geöffnete Datei schließt sich nicht
21.10.2016 18:31:39
Michael
Hi,
einfach (nur) das Blatt kopieren, umbenennen und schließen:
Sub BlattInNeueDatei()
Sheets("zukopierendesblatt").Copy
ActiveSheet.Name = "neuerName"       ' das Blatt ist jetzt aktiv, in der neuen, aktiven Datei
ActiveWorkbook.SaveAs ThisWorkbook.Path & "\Blatttest.xlsx" 'hier Dein Pfad
ActiveWorkbook.Close False
End Sub
Schöne Grüße,
Michael
AW: geöffnete Datei schließt sich nicht
21.10.2016 19:14:45
Hans-Jürgen
Zunächst vielen Dank - aber...
Der VBA-Code befindet sich ja in dem "abgebenden" Workbook, außerdem noch Sherts, die nicht im Ziel-Workbook landen dürfen. Gut, die kann man löschen, aber ich will kein Risiko eingehen (ggf. werden die mal umbenannt und keiner denkt daran, den Delete zu ändern). Wie man den Code nicht mit kopiert, weiß ich auch nicht.
Wegen dieser Unwägbarkeiten wollte ich nicht das abgebende Workbook kopieren, sondern nur das eine Blatt.
Geht das vielleicht auch anders?
Vielen Dank
Anzeige
AW: geöffnete Datei schließt sich nicht
21.10.2016 19:47:28
Michael
Hi,
genau: im "abgebenden" Workbook: hier kopierst Du NUR dieses eine Tabellenblatt, sonst ist die neue Datei leer.
Meine Zeilen kopieren NICHT das bereits geöffnete, Workbook, sondern eben nur das Blatt:
Sheets("zukopierendesblatt").Copy
Probier's doch mal in VBA mit F8-Taste aus und verfolge, was passiert.
Schöne Grüße,
Michael
AW: geöffnete Datei schließt sich nicht
21.10.2016 20:50:45
Hans-Jürgen
Super, vielen Dank! Das werde ich Montag gleich mal im Einzelschrittmodus ausprobieren.
Ich hoffe, ich habe dann auch dieses Problem umschifft, dass noch Reste der Datei offen bleiben.
Falls es nicht klappen sollte, melde ich ich nochmal.
Anzeige
AW: geöffnete Datei schließt sich nicht
21.10.2016 20:50:56
Hans-Jürgen
Super, vielen Dank! Das werde ich Montag gleich mal im Einzelschrittmodus ausprobieren.
Ich hoffe, ich habe dann auch dieses Problem umschifft, dass noch Reste der Datei offen bleiben.
Falls es nicht klappen sollte, melde ich ich nochmal.
na, dann schaun wir mal
22.10.2016 18:05:04
Michael
Gruß,
Michael
AW: geöffnete Datei schließt sich nicht
24.10.2016 08:26:34
Hans-Jürgen
Hallo,
der Code ist zwar kürzer, eleganter und macht, was er soll (vielen Dank nochmal).
Allerdings: Auch hier bleibt der "Rest" im Projekt-Explorer stehen, was ich bei meinen anderen Dateioperationen (öffnen, auslesen und schließen) nicht habe.
Kann man da noch was machen, oder muss ich das so lassen?
Vielen Dank.
Anzeige
kann ich nicht nachvollziehen
24.10.2016 15:17:37
Michael
Hi Hans-Jürgen,
bei meinem ersten Test hatte ich im betreffenden Blatt kein Makro; jetzt habe ich mal eines reingeschrieben ...
Userbild
wobei dann eine Abfrage kommt, weil *.xlsx natürlich nur ohne Makros speichert.
Diese Meldung kann man mit application.displayalerts unterdrücken, ALLERDINGS wird dann auch die Meldung unterdrückt, die erscheint, falls die Zieldatei bereits vorhanden ist.
Das Makro habe ich in Modul1, und es lautet dann vollständig:
Option Explicit
Sub BlattInNeueDatei()
Sheets("zukopierendesblatt").Copy
ActiveSheet.Name = "neuerName"
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs ThisWorkbook.Path & "\Blatttest.xlsx"
Application.DisplayAlerts = True
ActiveWorkbook.Close False
End Sub
Vielleicht reden wir ja aneinander vorbei; jedenfalls sieht bei mir das in der Grafik zu sehende Projektfenster nach Ausführung des Makros genau so aus wie vorher - da sind keine "Reste" der kopierten Datei zu sehen.
Schöne Grüße,
Michael
Anzeige
AW: kann ich nicht nachvollziehen
24.10.2016 17:08:38
Hans-Jürgen
Hallo Michael,
ich kann jetzt leider keine Screenshots hochladen, aber bei mir ist es anders (Excel 2010).
Vor der Aktion steht im Projektexplorer nur die xlsx, die auch das Makro enthält, von der also ein Sheet kopiert wird. Dieser kopierte Sheet (=ein Urlaubsplan) wird dann als "Urlaubsplan.xlsx weggespeichert.
Nach dem Close ist aber im Projektexplorer weiterhin der "Urlaubsplan.xlsx" vorhanden.
Das mit den Displayalerts habe ich auch schon vorher drin gehabt.
Ich führe mit der Hauptdatei auch andere Dateioperationen aus, z.B. öffne ich vorhandene Dateien und lese dort Daten aus. Diese sind nach dem Schließen wirklich "weg", nur der Urlaubsplan.xlsx nicht.
Aber ich habe das jetzt "aufgegeben", dann bleibt halt der Eintrag da drin.
Vielen Dank
Hans-Jürgen
Anzeige
wer hat XL 2010?
24.10.2016 20:11:27
Michael
Hi,
ich stell noch mal auf offen - vielleicht kommt ja noch ne Antwort.
Dir erst mal vielen Dank für die Rückmeldung.
Frohes Schaffen,
Michael
AW: kann ich nicht nachvollziehen
26.10.2016 16:58:12
Hajo_Zi
Hallo Hans Jürgen,
Ein Bild hilft da nur wenig ein Programm haben um aus einem Bild eine Exceldatei mit Code zu erstellen.
Eine XLSX Datei kann kein Makro enthalten. Es sei den Du hast es in der Sitzung erstellt.

311 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige