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

Forumthread: Sub oder Funktion nicht definiert in kleinem Makro

Sub oder Funktion nicht definiert in kleinem Makro
27.06.2008 10:07:27
Urs
Hallo zusammen
Ich habe folgendes Makro, das mir beim Kompilieren folgenden Fehler bringt:

Sub oder Funktion nicht definiert.
Er bleibt dann auf "auswaehlen" stehen.
Könnt Ihr mir helfen, wie die Zeile aus sehen soll.
Besten Dank für Eure unterstützung und einen schönen Tag.
urs


Sub SelectDatenart()
Dim strRange As String
strRange = "DatenartAusSpalte"
Application.ScreenUpdating = False
Sheets("BasicInformation2").Activate
Auswaehlen (strRange)
'Calculate
Application.ScreenUpdating = True
End Sub


Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Sub oder Funktion nicht definiert in kleinem Makro
27.06.2008 10:22:00
Beverly
Hi,
mit dem Code wird eine Funktion aufgerufen, die Auswaehlen heißt und dabe wird der Parameter strRange übergeben. Gibt es die Funktion Auswaehlen überhaupt bei dir?


AW: Sub oder Funktion nicht definiert in kleinem Makro
27.06.2008 16:16:00
Urs
Hallo Karin
Besten Dank für den Hinweis. Habe die Funtion gefunden, hat irgend jemand auskommeniert.
Ich wünsche ein schönes Wochenende.
Urs
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Sub oder Funktion nicht definiert in VBA beheben


Schritt-für-Schritt-Anleitung

Wenn du beim Kompilieren eines VBA-Makros die Fehlermeldung "Sub oder Funktion nicht definiert" erhältst, befolge diese Schritte:

  1. Überprüfe den Funktionsnamen: Stelle sicher, dass die aufgerufene Funktion im gleichen Modul oder in einem anderen Modul vorhanden ist und korrekt benannt ist.

  2. Funktionen in Modulen: Wenn du eine Funktion wie Auswaehlen verwendest, vergewissere dich, dass sie auch wirklich existiert. Suche im Projekt-Explorer nach der Funktion und prüfe, ob sie möglicherweise auskommentiert wurde.

  3. Syntax prüfen: Achte darauf, dass der Aufruf der Funktion korrekt ist. Zum Beispiel sollte der Aufruf so aussehen:

    Auswaehlen strRange
  4. Module und Sichtbarkeit: Wenn die Funktion in einem anderen Modul definiert ist, stelle sicher, dass sie als Public deklariert ist, damit sie von anderen Modulen aus aufgerufen werden kann.

  5. Kompilierung: Nutze die Funktion "Kompilieren" im VBA-Editor, um alle Fehler zu identifizieren, bevor du das Makro ausführst. Dies kannst du über Debug -> Kompilieren erreichen.


Häufige Fehler und Lösungen

  • Fehler: "Fehler beim Kompilieren: Sub oder Funktion nicht definiert"

    • Lösung: Überprüfe die Existenz der Funktion und ihre Schreibweise.
  • Fehler: "vba sub nicht definiert"

    • Lösung: Sicherstellen, dass das Subroutine korrekt deklariert ist und die Schreibweise stimmt.
  • Fehler: "Excel VBA Fehler beim Kompilieren Sub oder Funktion nicht definiert"

    • Lösung: Überprüfe, ob alle erforderlichen Bibliotheken im Projekt aktiviert sind.

Alternative Methoden

Falls du Probleme mit der Verwendung von Subroutinen hast, gibt es auch alternative Methoden:

  • Direkte Verwendung von Funktionen: Du kannst deine Logik in eine Funktion umwandeln, die dann direkt in den Zellen verwendet werden kann, wenn es sich um Berechnungen handelt.

  • Verwendung von Excel-Formeln: Wenn möglich, nutze integrierte Excel-Funktionen anstelle von VBA, um die Komplexität zu reduzieren.


Praktische Beispiele

Hier ist ein Beispiel, wie ein korrektes Sub aussehen sollte:

Sub SelectDatenart()
    Dim strRange As String
    strRange = "DatenartAusSpalte"
    Application.ScreenUpdating = False
    Sheets("BasicInformation2").Activate
    Auswaehlen strRange  ' Korrekte Verwendung der Funktion
    Application.ScreenUpdating = True
End Sub

Wenn die Funktion Auswaehlen nicht definiert ist, erhältst du die Fehlermeldung "Sub oder Funktion nicht definiert". Stelle sicher, dass die Funktion vorhanden ist, wie im vorherigen Abschnitt beschrieben.


Tipps für Profis

  • Debugging: Nutze Debug.Print um Werte zur Laufzeit zu überprüfen und Fehler zu identifizieren.
  • Modularisierung: Halte deinen Code modular, indem du Subroutinen und Funktionen in separate Module aufteilst, um die Übersichtlichkeit zu erhöhen.
  • Dokumentation: Kommentiere deinen Code gründlich, damit du und andere Benutzer im Team den Code leicht verstehen können.

FAQ: Häufige Fragen

1. Was bedeutet "Sub oder Funktion nicht definiert"?
Diese Fehlermeldung tritt auf, wenn ein aufgerufenes Sub oder eine Funktion im aktuellen Kontext nicht gefunden wird.

2. Wie kann ich sicherstellen, dass meine Funktion gefunden wird?
Vergewissere dich, dass die Funktion im gleichen Modul oder in einem anderen Modul als Public deklariert ist und dass der Name korrekt geschrieben ist.

3. Gibt es eine Möglichkeit, diese Fehler zu vermeiden?
Ja, durch regelmäßiges Kompilieren und die Verwendung von Option Explicit am Anfang jedes Moduls, um sicherzustellen, dass alle Variablen deklariert sind.

4. Welche Rolle spielt die Sichtbarkeit von Funktionen?
Die Sichtbarkeit bestimmt, ob eine Funktion aus anderen Modulen aufgerufen werden kann. Public macht sie für alle Module sichtbar, während Private sie nur im aktuellen Modul verfügbar macht.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige