Hallo zusammen,
in einem unter Excel 2007 geschriebenen VBA-Makro nutze ich die Kalender-Referenz und binde in ein Userform einen Kalender ein, um bequem ein Datum angeben zu können. Auf einer anderen Umgebung mit Excel 2013 ist diese Referenz nicht vorhanden und der Kalender wird dementsprechend nicht angezeigt. Das ist in Ordnung. Er scheint für Excel also gar nicht zu existieren.
Ich erhalte beim Auswerten der Daten vom Userform zwangsläufig einen Kompilierungsfehler, da ich ja auf die Value-Eigenschaft des Kalenders zugreife, ohne dass dieses Element existiert. Dementsprechend bricht Excel trotz "On Error Resume Next" mit einem Kompilierungsfehler ab ("Fehler beim Kompilieren: Methode oder Datenobjekt nicht vorhanden."). Das kann ich wohl auch nicht vermeiden, da ich ein Objekt anspreche, das gar nicht existiert. Gibt es eine Möglichkeit, diesen Kompilierungsfehler zu vermeiden?
Mein erster Versuch: Den Kalender habe ich bereits in ein weiteres Userform ausgelagert, das durch einen Klick auf einen Button im ersten Userform angezeigt wird. Das Script wird also dann problemlos durchlaufen, wenn der Benutzer unter Excel 2013 nicht auf den Button klickt, wodurch sich das zweite Userform mit Kalender öffnet. Tut er das aber doch und wählt dann dort "Datum übernehmen" (es wird dann der Value-Wert des Kalenders in ein Textfeld des ersten Userforms geschrieben), bricht Excel natürlich mit dem Kompilierungsfehler ab.
Gibt es eine Möglichkeit zu prüfen, ob ein Verweis existiert? Könnte ich also beim Klick auf den Button zum Öffnen des zweiten UserForms irgendwie abfragen, ob der Kalender existiert, und falls nicht, das Öffnen verweigern? Bloß wie gestalte ich eine solche Abfrage, ohne auf den Kalender selbst zuzugreifen (das würde ja immer einen Kompilierungsfehler provozieren)?
Bin über jeden Denkanstoß dankbar.
(Es geht übrigens nicht um die Excel-Versionen, sondern eher um das Problem, das ich auf einigen Rechnern den Kalender zur Verfügung habe und auf anderen nicht.)
Danke und Grüße,
die zettelbox