Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Excel beenden - Fehler "Variable nicht definiert"

Excel beenden - Fehler "Variable nicht definiert"
10.11.2007 18:42:00
stl
Hallo zusammen, ich habe folgendes Problem und hab keine Ahnung warum :)
Also ich habe eine Arbeitsmappe mit VBA-Code hinterlegt. Wenn ich nun Excel über das große X oben rechts beende, kommt die Frage "Sollen ihre Änderungen in '...' gespeichert werden?". Egal ob ich mit ja oder nein antworte, geht anschließend der VBA Editor auf mit der Fehlermeldung "Fehler beim Kompilieren: Variable nicht definiert". Wenn ich auf OK klicke markiert er mir ComboBox2 in der Befehlszeile. Wenn ich jetzt auf "zurücksetzen" klicke kommt die Fehlermeldung nochmal. Diesmal markiert er nach OK jedoch ComboBox4 in einer Befehlzeile. Klicke ich jetzt nochmal auf "zurücksetzen" dann schließt Excel wie gewollt komplett. Wenn ich statt auf "schließen" (großes X oben rechts) auf "Fenster schließen" (kleineres x unter dem großen X oben rechts) klicke, beendet er mir die Arbeitsmappe ohne Fehlermeldung. Wenn ich danach Excel schließe ist auch alles wie gewollt.
Also nun die Frage: Warum bringt Excel beim schließen über "schließen" die Meldungen, dass die Variablen "ComboBox2" und "ComboBox4" nicht definiert sind? Weil selbst bei "Option Explicit" muss ich ComboBoxen gar nicht seperat definieren.
Hat jemand einen Tip bzw. kann mir helfen?
Gruß
stl

Anzeige

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excel beenden - Fehler "Variable nicht definiert"
10.11.2007 18:56:03
Tino
Hallo,
die einfachste aber nicht saubere Lösung ist, entferne überall
Option Explicit
damit wird die Deklarierung auf nicht erforderlich gesetzt.
oder Deklariere deine Daten
Gruss
Tino

AW: Excel beenden - Fehler "Variable nicht definiert"
10.11.2007 19:08:00
stl
Hallo, ich habe überall "Option Explicit" drin und will die Option auch nicht entfernen da ich zig 100 Variablen drin habe und sonst den Überblick verliere was nun definiert ist und was nicht bzw. ob variablen evtl doppelt vergeben sind. Ich wüsste auch gar nicht wie man eine normal erzeugte ComboBox definieren soll/muss, da das ja normal selbst bei "Option Explicit" nicht erforderlich ist. Bei den ComboBoxen 1 und 3 gibt es komischerweise keine Probleme. Eben nur mit den ComboBoxen 2 und 4 und das auch nur wenn ich Excel direkt komplett schließen will. Also muss es doch einen Trick geben warum eben diese beiden ComboBoxen diesen Fehler hervorrufen. Denn wie schon gesagt - wen ich erst das fenster schließe und danach erst Excel, gibts ja auch kein Problem. Aber ich will das Problem halt verstehen weil nicht (zumindest nicht für mich) offensichtlich ist, warum das Problem überhaupt besteht.
gruß
stl

Anzeige
AW: Excel beenden - Fehler "Variable nicht definiert"
10.11.2007 19:23:00
Tino
Hallo,
du kannst im VBA Editor unter Debuggen - Kompilieren... ausführen
Sollte nun zu den Variablen gehen, die nicht Deklariert der fehlerhaft sind!
Dies so oft wiederholen bis kein Fehler mehr ausgegeben wird.
Gruss
Tino

AW: Excel beenden - Fehler "Variable nicht definiert"
10.11.2007 19:39:00
Daniel
Hi
ohne beispieldatei lässt sich da schwer was sagen.
Schau mal nach, ob irgendwelcher Code im Modul "DieseArbeitsmappe" unter dem Makro "Worbook_BeforeClose" oder "Workbook_BeforeSave" dafür verantwortlich sein kann.
des weiteren wäre zu prüfen, ob du überhaupt diese Comboboxen hast, und warum sie in dem Code verwendet werden.
Wenn es diese Comboboxen nicht gibt, gibts natürlich eine Fehlermeldung.
und auch wenn es sie gibt, kann es sein, daß sie je nach Position des Codes nicht ausreichend angesprochen werden, dh. es fehlt das übergeordnete Objekt (TABELLE1.Combobox1 oder Userform1.Combobx1)
aber wie gesagt, ohne Beispieldatei alles nur vermutungen.
Gruß, Daniel.
PS: lass das OPTION EXPLICIT auf jeden Fall drin

Anzeige
AW: Excel beenden - Fehler "Variable nicht definiert"
10.11.2007 20:36:49
stl
Hallo, ich muss noch dazu sagen, dass es kein Problem mit dem Programm selbst gibt. Das Programm inkl. der ComboBoxen läuft genau so wie es will. Es geht lediglich um die Fehlermeldungen die kommen, wenn ich Excel schließen will. Die ComboBoxen die angeblich nicht definiert sind arbeiten im normalen Betrieb ganz ohne Probleme. Die Berechnungen mit den Werten der ComboBoxen fuktionieren ebenfalls so wie sie sollen. Das Problem ist halt wirklich, dass je nachdem wie ich Excel bzw. die Arbeitsmappe schließe eine Fehlermeldung erscheint oder nicht. Und eben das muss ja irgend einen Grund haben. Ich verstehe halt nicht warum es diese Fehlermeldung gibt wenn ich Excel direkt schließen will und es keine Fehlermeldung gibt, wenn ich erst die Arbeitsmappe und dann erst Excel schließe. Das will mir so halt nicht einleuchten. Anbei noch mal ein Codeschnipsel. Nach der Fehlermeldung markiert er dann das ComboBox2 nach dem "if":

Private Function TabelleB2_Func(ByVal ze) As Double
If ComboBox2.Value = 0 Then
vm = 0
Iv = 0
q = 0
v = 0
ElseIf ComboBox2.Value = 1 Then
zmin = 2
If zmin 


Anzeige
AW: Excel beenden - Fehler "Variable nicht definiert"
10.11.2007 20:50:00
Tino
Hallo,
lade mal die Datei hoch.
Gruss
Tino

AW: Excel beenden - Fehler "Variable nicht definiert"
10.11.2007 20:54:54
Daniel
Hi
du solltets mal klären, warum diese Function überhaupt beim Schließen aufgerufen wird.
Check mal die Event-gesteuerten Makros
Gruß, Daniel

AW: Excel beenden - Fehler "Variable nicht definiert"
10.11.2007 22:06:00
stl
Hallo, ich habe derzeit eine vorübergehend akzeptable Lösung gefunden.
Ich habe keine Ahnung warum, aber mit dem nachfolgenden Code kommt es nicht zu den besagten Fehlermeldungen. Zwar bleibt Excel dann noch offen, aber das Workbook wird ohne murren direkt und ohne Fehlermeldung geschlossen .
Wenn jemand eine Lösung für mein zuvor beschriebenes Problem weiß oder die Ursache für die Fehlermeldungen kennt, ist aufgefordert sich zu melden :)
Gruß

Private Sub Workbook_BeforeClose(Cancel As Boolean)
ActiveWorkbook.Close SaveChanges:=True
End Sub


Anzeige
AW: Excel beenden - Fehler "Variable nicht definiert"
10.11.2007 22:22:00
Gerd
Hallo,
siehe Beitrag von Tino.
Gruß Gerd

AW: Excel beenden - Fehler "Variable nicht definiert"
11.11.2007 10:37:00
Tino
Hallo,
ja kommt daher es gibt zwei dieser Close, einmal ausgeführt durch drücken von "X" und ein zweites mal
durch dein ActiveWorkbook.Close!
mach es so:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Me.Saved = True 'schliesen ohne zu Speichern
'oder
ThisWorkbook.Save 'vor dem schliesen Speichern
'oder Lösche dieses Ereignis ganz und es kommt eine Abfrage ob die änderung gespeichert werden  _
soll!
End Sub


Gruss
Tino

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Excel beenden - Fehler "Variable nicht definiert"


Schritt-für-Schritt-Anleitung

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Suche nach dem Problem: Gehe zu Debuggen und wähle Kompilieren, um zu sehen, wo die Fehlermeldungen auftreten.
  3. Überprüfe die ComboBoxen: Stelle sicher, dass die ComboBoxen (z. B. ComboBox2 und ComboBox4) im Code korrekt referenziert werden.
  4. Verwende Option Explicit: Lasse Option Explicit in deinem Code, um sicherzustellen, dass alle Variablen deklariert sind und um Fehler beim Kompilieren zu vermeiden.
  5. Beende Excel über das große X: Teste das Schließen von Excel und achte auf Fehlermeldungen, um festzustellen, ob das Problem weiterhin besteht.

Häufige Fehler und Lösungen

  • Fehler beim Kompilieren: Variable nicht definiert: Dieser Fehler tritt häufig auf, wenn eine Variable (z. B. eine ComboBox) nicht richtig deklariert oder referenziert wird. Achte darauf, dass alle benötigten Variablen vorhanden sind und korrekt angesprochen werden.

  • Fehler beim Kompilieren: Sub oder Function nicht definiert: Überprüfe, ob die verwendeten Funktionen oder Subroutinen im Code vorhanden und korrekt geschrieben sind.

  • Keine Fehlermeldung bei Fenster schließen: Der Unterschied zwischen Close und Workbook_BeforeClose kann zu unterschiedlichen Verhalten führen. Wenn du das Arbeitsbuch zuerst schließt, kann es sein, dass der Fehler nicht auftritt.


Alternative Methoden

  • Verwende die Methode ActiveWorkbook.Close: Mit folgendem Code kannst du das Arbeitsbuch schließen, ohne dass die Fehlermeldung erscheint:

    Private Sub Workbook_BeforeClose(Cancel As Boolean)
      ActiveWorkbook.Close SaveChanges:=True
    End Sub
  • Setze Me.Saved = True: Dies verhindert, dass die Abfrage zur Speicherung erscheint, wodurch die Fehlermeldung vermieden werden kann.

    Private Sub Workbook_BeforeClose(Cancel As Boolean)
      Me.Saved = True
    End Sub

Praktische Beispiele

Hier ist ein Beispiel, das zeigt, wie du die ComboBoxen in einem VBA-Projekt richtig verwenden kannst:

Private Function TabelleB2_Func(ByVal ze) As Double
    If ComboBox2.Value = 0 Then
        ' Deine Logik hier
    ElseIf ComboBox2.Value = 1 Then
        ' Weitere Logik hier
    End If
End Function

Wenn die ComboBoxen richtig definiert sind, solltest du keine Fehlermeldungen mehr erhalten.


Tipps für Profis

  • Halte deinen Code sauber und gut dokumentiert. Verwende Kommentare, um wichtige Abschnitte zu erläutern.
  • Vermeide es, Option Explicit zu entfernen, auch wenn es kurzfristig einfacher erscheint. Das sorgt für mehr Sicherheit und weniger Fehler.
  • Teste deinen Code regelmäßig, insbesondere nach Änderungen, um sicherzustellen, dass keine neuen Fehler auftreten.

FAQ: Häufige Fragen

1. Warum bekomme ich die Fehlermeldung "Variable nicht definiert"?
Diese Fehlermeldung tritt auf, wenn du im Code auf eine Variable zugreifst, die nicht deklariert oder nicht korrekt referenziert wurde.

2. Wie kann ich sicherstellen, dass meine ComboBoxen korrekt definiert sind?
Überprüfe, ob die ComboBoxen im richtigen Kontext (z. B. in einem bestimmten Arbeitsblatt oder Formular) vorhanden sind und ob sie korrekt im Code angesprochen werden.

3. Was ist Option Explicit und warum sollte ich es verwenden?
Option Explicit zwingt dich dazu, alle Variablen zu deklarieren, bevor du sie verwendest. Dies hilft, Tippfehler und andere Fehler zu vermeiden, die zu Fehlermeldungen führen können.

4. Wie kann ich Excel ohne Fehlermeldung schließen?
Verwende die oben genannten Methoden, um das Arbeitsbuch oder die Anwendung zu schließen, ohne dass die Fehlermeldung auftritt.

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