Ich habe ein Problem in einem relativ großen Excel Projekt. Ich habe eine Verwaltung von Arbeitsmappen und Blättern geschrieben und bin mittlerweile auf ein Problem gestoßen das selten auftaucht, aber doch zum Absturz des Makros führen kann.
Ich greife aus meinen Makros auf alle geöffneten Arbeitsmappen und Blätter zu und Liste diese auf, bzw. filtere bestimmte Informationen aus ihnen herraus.
Wenn ich jetzt ein Blatt lösche und mein Management aufrufe, passiert es unter umständen das dieses Blatt noch angezeigt wird. Schließe ich das Management und öffne es erneut, ist alles ok. Wenn jetzt aber das eine Blatt existiert, wird beim bestätigen versucht Daten auf einem nicht existenten Blatt zu ändern.
Das mit den Blättern passiert sehr selten, viel nerviger ist das etwas häufiger auftretende Problem mit den Arbeitsmappen.
Ich habe ein Makro geschrieben das auch neue Arbeitsmappen mit gewissen Vorlagen neu erstellt. Das funktioniert soweit ganz gut. Danach öffnet das Makro das Dateimanagement in dem alle Arbeitsmappen und ihre Blätter aufgelistet sind. In dem "Neue Datei" Makro ist ein Schutz eingebaut der erst dann das Dateimanagement öffnet, wenn wirklich die Anzahl der offenen Arbeitsmappen größer wurde. Damit funktioniert das Marko ansich ganz gut.
Jetzt kommt das kuriose. Ich habe eine offene Arbeitsmappe und schließe diese. Danach drücke ich auf Neue Datei, Danach springt der Dateimanagement Dialog auf, da sich die Anzahl der offenen Arbeitsmappen erhöht hat und die neue Arbeitsmappe auch zu sehen ist. Die Auswahl der Arbeitsmappen im Dialog aber zeigt die neue nicht an sondern die alte geschlossene Arbeitsmappe mitsamt allen Blättern.
Meine Theorie zu dem ganzen ist das Excel sich die Daten zu lange im Speicher lässt und man auf diese Daten immernoch per VBA zugriff hat. Da ich sagen wir 2 Arbeitsmappen offen habe, eine Schließe und eine erstelle, wird die neue vielleicht auf Index 3 geschoben da der Index 2 noch nicht vollständig entfernt wurde, aber die Anzahl die VBA zurückliefert ist die richtige. Dadruch kommt vielleicht die verwirrung der Dialoge.
Kennt einer das Problem oder hat einer ein Vorschlag, es wäre nervig wenn dadruch mein Dialog immermal ein Fehler auspuckt.