Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1416to1420
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

Kompilierungsfehler irgendwie zu vermeiden?

Kompilierungsfehler irgendwie zu vermeiden?
28.03.2015 13:50:52
zettelbox

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

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Kompilierungsfehler irgendwie zu vermeiden?
28.03.2015 14:09:13
Michael
Hi Zettelbox,
im Forum gibt es eine Reihe posts zum Thema Kalender, der in neueren Versionen nicht mehr vorhanden ist, wobei ich mich dunkel erinnere, daß auch Hinweise oder Programmbeispiele zu einem alternativen Kalender da waren, mit dem man das Problem grundsätzlich umgehen kann.
Du schreibst zwar, es gehe "nicht um die Excel-Versionen", um die geht es aber doch. Mach einfach im Makro ne Versionsabfrage, z.B. damit:
Sub versionsabfrage()
MsgBox Application.Version
End Sub
Alles, was neuer ist als 2007 kennt den Kalender nicht mehr.
Schöne Grüße,
Michael

Anzeige
AW: Kompilierungsfehler irgendwie zu vermeiden?
28.03.2015 17:33:00
zettelbox
Hallo ihr beiden, danke für den Tipp. Die Versionsabfrage ist schon sinnvoll, damit komme ich einen Schritt weiter; noch besser ist natürlich die Idee mit dem eigenen Kalender.
Kann ich den eigenen Kalender nur auf dem System nutzen, auf dem er installiert ist, oder wird er mit in die Datei eingebunden und ist dann überall nutzbar? Letzteres wäre natürlich ideal.
Danke nochmals!

Anzeige
AW: Kompilierungsfehler irgendwie zu vermeiden?
28.03.2015 17:35:15
Hajo_Zi
mein Kalender ist in der Datei und kann auf jeden Rechner mit Excel ab 1997 (Windows) benutzt werden.
Mac kann ich nicht testen.
Gruß Hajo

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige