Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA Projekte bleiben offen, obwohl Dateien geschlossen

VBA Projekte bleiben offen, obwohl Dateien geschlossen
15.04.2024 10:52:36
tonli2410
Hallo zusammen,
ich erstelle mit einer Excel Datei über ein Modul eine Monatsberichtsdatei. Dazu wird über einen Code in DieserArbeitsmappe im Workbook_Open Ereignis ein Button (im Reiter Add-ins) erstellt, der eine Userform startet. Wenn die genannte Datei erstellt wurde (beim erstmaligen Ausführen in knapp zwei Sekunden erledigt), wird der Dateiname und das Excel Format der Datei vorgegeben. Der Benutzer wählt dann nur noch den gewünschten Speicherpfad aus, danach schließt das Skript die soeben erstellte Datei automatisch. Zu guter Letzt öffnet sich eine MsgBox (vba Yes/No) zur Abfrage, ob weitere Monate erstellt werden sollen. Wenn ja, wird die Userform erneut geöffnet, wenn Nein kehrt man zur Erstelldatei zurück - also Excel bleibt geöffnet. Nun zu meinem Problem: Wenn ich weitere Monate direkt im Anschluss (ohne Excel einmal beendet zu haben) erstelle, dauert es deutlich länger. Dieser Effekt ist besonders stark ausgeprägt, wenn ich das Skript im Netzwerk ausführe. Nach zwei, drei Dateien führt es sogar zum Absturz mit Fehlermeldungen, dass nicht mehr genügend Speicher vorhanden ist. Was mir aufgefallen ist, dass im VBA Explorer die für die Erstellung benötigten Projekte weiterhin vorhanden bleiben (obwohl die Excel Dateien alle geschlossen wurden - vom Skript). Ich habe im gesamten Projekt alle Variablen, die ich mit Set definiert habe, immer mit Set = Nothing geleert (hatte ich beim Googeln als mögliche Ursache gefunden). Was kann ich tun?
Ich hoffe ich habe mich verständlich ausgedrückt und danke euch im Voraus für die Hilfe :-)

so sieht es im VBA Explorer aus - als Beispiel habe ich vier Monatsdateien erstellt ->
+ VBAProject (01 Betriebstagebuch.....
+ VBAProject (02 Betriebstagebuch.....
+ VBAProject (03 Betriebstagebuch.....
+ VBAProject (04 Betriebstagebuch.....

LG
Toni
Anzeige
AW: VBA Projekte bleiben offen, obwohl Dateien geschlossen
15.04.2024 11:33:12
schauan
Hallöchen,

ich vermute, dass Du da irgendwelche Verweise auf die Projekte hat, z.B. wegen
DieserArbeitsmappe im Workbook_Open Ereignis ein Button (im Reiter Add-ins) erstellt,
und sich dadurch etwas aufbaut. Hast Du im Reiter dann eigentlich pro Datei einen Button oder wie differenzierst Du, von welcher Datei das UF geöffnet wird?

Du könntest ggf. im Workbook_Open Ereignis prüfen, ob schon Tagebücher offen sind und wenn ja, das W_O abbrechen.
Sind die Tagebücher dann xlsx oder enthalten die die Makros?

Wird viel kopiert?
Excel gibt nach dem Einfügen den Speicher nicht komplett frei, da baut sich auch was auf. Der wird erst nach dem Beenden wieder freigegeben.

Anzeige
AW: VBA Projekte bleiben offen, obwohl Dateien geschlossen
15.04.2024 12:02:54
Kuwer
Hallo Toni,

Application.CutCopyMode = False

hast Du an geeigneter Stelle drin?

Gruß, Uwe
AW: VBA Projekte bleiben offen, obwohl Dateien geschlossen
15.04.2024 13:24:34
tonli2410
Hallo Uwe,

meinst Du nach diesem Sub ->

Sub Speichern_unter_aufrufen()
' Speichern Unter Dialog mit Vorgabe xlsm
'-------------------------------------------------
Dim Dateiname As String
Dim Name
Dateiname = Format(kw, "mm") & " Betriebstagebuch Deponie Werne " & Format(kw, "YYYY") 'Dateiname basteln
Name = Application.GetSaveAsFilename(Dateiname, fileFilter:="Microsoft Excel-Arbeitsmappe (*.xlsm), *.xlsm")
If Name > False Then
With ActiveWorkbook
.SaveAs Name, FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False 'Format excel Datei mit Makros
.Close saveChanges:=False
End With
End If
If MsgBox("Wollen Sie einen weiteren Monat erstellen", vbYesNo) = vbYes Then UserForm1.Show 'Abfrage am Ende ob ein weiterer Monat erzeugt werden soll
End Sub

Danke und Gruß
Toni
Anzeige
AW: VBA Projekte bleiben offen, obwohl Dateien geschlossen
15.04.2024 13:54:03
tonli2410
Hallo Uwe
habe es im genannten Bereich ganz unten - nach dem Speichern eingefügt. Leider ohne Erfolg ;-)
Muss ich wohl mit leben - egal.
Lokal läuft es ja auch trotzdem (Projekte bleiben auch hier geöffnet) schnell und flüssig. Nur im Netzwerk genannte Problem.

Trotzdem vielen Dank und VG
Toni
Anzeige
AW: VBA Projekte bleiben offen, obwohl Dateien geschlossen
15.04.2024 15:22:45
schauan
Hallöchen,

Also, zum Verständnis.

Du startest Excel.
Dann öffnest Du xyz mit dem Workbook_Open-Ereignis usw.
Dann machst Du mehr oder weniger was mit dem Userform
Dann speicherst xyz als ... 01 ...
Dann machst Du mehr oder weniger was mit dem Userform
Dann denkst Du, Du speicherst xyz als ... 02 ... Stimmt aber nicht. Du speicherst nun ... 01 ... als ... 02 ... xyz ist nicht mehr offen
usw

Korrekt oder läuft das anders?
Falls ich richtig liege, sollest Du statt SaveAs lieber SaveCopyAs nehmen...

Anzeige
AW: VBA Projekte bleiben offen, obwohl Dateien geschlossen
15.04.2024 16:36:44
tonli2410
Hallo Uwe,

Das war es - SaveCopyAs hat das Problem gelöst.
Ich verstehe auch, was Du gemeint hast - vielen Dank für die Erklärung und die tolle Hilfestellung :-)

LG
Toni
AW: VBA Projekte bleiben offen, obwohl Dateien geschlossen
15.04.2024 16:41:35
tonli2410
sorry - nicht Uwe, sondern schauan ;-) war gemeint.
Habe so lange an diesem Problem gesessen und wollte schon aufgeben ;-)

Danke vielmals!!!!
LG
toni

Anzeige
AW: VBA Projekte bleiben offen, obwohl Dateien geschlossen
15.04.2024 17:13:53
tonli2410
Hallo noch einmal,

leider nur bedingter Erfolg:
mit SaveCopyAs kann ich das FileFormat:=xlOpenXMLWorkbookMacroEnabled nicht vorgeben. Das geht ja nur mit SaveAs.
Ich brauche das aber - heul
Gruß
toni
AW: VBA Projekte bleiben offen, obwohl Dateien geschlossen
15.04.2024 17:17:04
schauan
Was hat denn die Ursprungsdatei für ein Format? Auf jeden Fall mit Makros, von daher könnte es doch passen?
Anzeige
AW: VBA Projekte bleiben offen, obwohl Dateien geschlossen
15.04.2024 17:28:26
tonli2410
Hallo schauan ->

ja die Ursprungsdate hat die Endung xlsm - funktioniert aber trotzdem nicht.
Ich habe unten aus .saveAs Name .saveCopyAs name gemacht (ohne Vorgabe Dateityp)

so sieht die Passage aus ->

Sub Speichern_unter_aufrufen()
' Speichern Unter Dialog mit Vorgabe xlsm
'-------------------------------------------------
Dim Dateiname As String
Dim Name
Dateiname = Format(kw, "mm") & " Betriebstagebuch Deponie Werne " & Format(kw, "YYYY") 'Dateiname basteln
Name = Application.GetSaveAsFilename(Dateiname, fileFilter:="Excel Macro-Enabled Workbook (*.xlsm), *.xlsm")
If Name > False Then
With ActiveWorkbook
.SaveAs Name, FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False 'Format excel Datei mit Makros
.Close saveChanges:=False
End With
End If

If MsgBox("Wollen Sie einen weiteren Monat erstellen", vbYesNo) = vbYes Then UserForm1.Show 'Abfrage am Ende ob ein weiterer Monat erzeugt werden soll
End Sub
Anzeige
AW: VBA Projekte bleiben offen, obwohl Dateien geschlossen
15.04.2024 18:44:39
schauan
Hallöchen,

Du nimmst nur

ActiveWorkbook.SaveCopyAs Name

Schließen ist dann nicht mehr nötig.
AW: VBA Projekte bleiben offen, obwohl Dateien geschlossen
16.04.2024 08:15:06
tonli2410
Hallo schauan,

wenn ich das mache, bleibt die Datei geöffnet. Eigentlich läuft der Code mit dem close Befehl sauber durch, nur die erstellte Datei kann nicht geöffnet werden. Es erscheint die Meldung, dass das Dateiformat oder die Dateierweiterung ungültig ist. Bitte überprüfen Sie, ob die Datei beschädigt ist und ob die Dateierweiterung dem Dateiformat entspricht.

Könnte ich Dir die Datei mal hochladen - würdest Du mal drüber schauen??

Gruß
Toni
Anzeige
AW: VBA Projekte bleiben offen, obwohl Dateien geschlossen
16.04.2024 11:07:54
schauan
Hallo Toni,

kannst Du machen. Du meinst, hier im Forum?

Mal unabhängig davon -
Du kannst das einzelne Kommando auch mit einer ansonsten leeren Datei testen. Nimm eine neue Datei, trage dort das kleine Makro ein
Sub test()

ThisWorkbook.SaveCopyAs "C:\Test\ttt.xlsm"
End Sub

speichere die Datei z.B. als test.xlsm und dann führst Du das Makro aus. Anschließend öffnest Du die ttt.xlsm
Damit solltest Du zumindest erst mal sehen, dass die Vorgehensweise grundsätzlich funktioniert.
Anzeige
AW: VBA Projekte bleiben offen, obwohl Dateien geschlossen
16.04.2024 12:59:16
tonli2410
Hallo schauan,

grundsätzlich funktioniert das. Die Datei bleibt aber geöffnet - das köönnte man ja ändern.
ABER: und das will ich nicht, alle Module und natürlich auch der Code in DieseArbeitsmappe bleiben erhalten.
Ich erstelle mit der Datei sogenannte Monatsberichtsdateien, die ohne das genannte Modul1 und ohne irgendwelchen Code in DieseArbeitsmappe erstellt werden sollen, sonst hätte man ja wieder so einiges an Buttons und Ähnlichem beim Starten der soeben erstellten Datei.

Ich lade Dir hier mal die Datei hoch - vielleicht findest Du ja eine Lösung. Wie schon gesagt, alles funktioniert eigentlich ganz gut. Nur die Perfomance leidet - ganz besonders im Netzwerk.

Danke und LG
Toni

P.S. Die Datei startest Du über Add-ins

Danke im Voraus

https://www.herber.de/bbs/user/168775.xlsm
Anzeige
AW: VBA Projekte bleiben offen, obwohl Dateien geschlossen
15.04.2024 11:45:15
tonli2410
Hallo schauan,

also der Button wird nur einmalig im Workbook_Open Ereigniss erstellt. Bei der Erstellung wird auch geprüft ob es bereits einen gibt mit dem entsprechenden Namen (doppelte Buttons vermeiden). Im Workbook_BeforeClose Ereignis wird dieser Button dann gelöscht, damit er nicht in anderen Excel Anwendungen zur Verfügung steht und ins Leere läuft. Zum Thema, wieviel wird kopiert: Es wird ein einzelnes Tabellenblatt kopiert (enthält viele indirekt Verknüpfungen und Formeln). Dieses Arbeitsblatt enthält im Worksheet_Change Ereignis "nur" eine Funktion, die Registerfarbe des Selbigen, in Abhängigkeit von Eingaben in bestimmten Zellen, zu färben.

Danke Dir für Deine Antwort
Gruß
Toni
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

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