Subs über Variablen in Excel aufrufen
Schritt-für-Schritt-Anleitung
Um ein Excel Sub über eine Variable aufzurufen, kannst du die Application.Run Methode verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:
- 
Deklariere deine Variable: Definiere eine öffentliche Variable, die den Namen des zu aufrufenden Subs speichert.
Public auswahl As String
 
- 
Setze die Variable: Bei Auswahl eines Eintrags in deiner ListBox, setze auswahl auf den entsprechenden Sub-Namen. Zum Beispiel:
auswahl = "datenabfrage"
 
- 
Rufe das Sub auf: Verwende Application.Run, um das Sub mit dem Namen in der Variable aufzurufen:
Application.Run auswahl
 
- 
Fehlerbehandlung: Stelle sicher, dass das Sub in einem Standardmodul definiert ist, da Subs in UserForms nicht direkt aufgerufen werden können.
 
Häufige Fehler und Lösungen
- 
Fehler: "Sub nicht gefunden": Dieser Fehler tritt auf, wenn das Sub nicht im richtigen Modul deklariert ist. Stelle sicher, dass sich das Sub in einem allgemeinen Modul befindet und öffentlich deklariert ist.
 
- 
Lösung: Überprüfe, ob dein Sub wie folgt aussieht:
Public Sub datenabfrage()
  ' Code hier
End Sub
 
- 
Fehler: "Name ist bereits vorhanden": Dies geschieht, wenn mehrere Subs denselben Namen haben. Achte darauf, dass die Namen einzigartig sind, um Konflikte zu vermeiden.
 
Alternative Methoden
Wenn Application.Run nicht funktioniert oder du eine andere Methode bevorzugst, kannst du die CallByName Methode nutzen. Hier ist, wie es geht:
CallByName Me, auswahl, VbMethod
Diese Methode ermöglicht es dir, Subs auch aus UserForms heraus aufzurufen, solange sie als Public deklariert sind.
Praktische Beispiele
Hier ist ein einfaches Beispiel, wie du verschiedene Subs über eine Variable aufrufen kannst:
Public Sub Button_Click()
    Dim auswahl As String
    auswahl = "datenabfrage" ' oder "wartungstermine"
    Application.Run auswahl
End Sub
Public Sub datenabfrage()
    MsgBox "Datenabfrage wurde aufgerufen."
End Sub
Public Sub wartungstermine()
    MsgBox "Wartungstermine wurden aufgerufen."
End Sub
In diesem Beispiel wird beim Klicken des Buttons das entsprechende Sub aufgerufen, je nachdem, welcher Eintrag in der ListBox ausgewählt wurde.
Tipps für Profis
- 
Verwende Module effektiv: Halte deine Subs in einem einzigen Modul, um die Übersicht zu bewahren. Wenn du viele Subs hast, kannst du sie thematisch gruppieren.
 
- 
Parameterübergabe: Falls du Parameter an deine Subs übergeben musst, kannst du dies ebenfalls mit der Application.Run Methode tun:
Application.Run auswahl, parameter1, parameter2
 
- 
Debugging: Nutze Debug.Print für die Fehlersuche, um zu sehen, welcher Sub aufgerufen wird und welche Parameter übergeben werden.
 
FAQ: Häufige Fragen
1. Wie kann ich ein Sub mit Parametern aufrufen?
Du kannst Application.Run mit den Parametern wie folgt verwenden:
Application.Run "modulname." & auswahl, param1, param2
2. Warum funktioniert Application.Run manchmal nicht?
Stelle sicher, dass der Name der Variable genau mit dem Namen des Subs übereinstimmt und dass das Sub in einem allgemeinen Modul definiert ist.
3. Kann ich Subs in UserForms aufrufen?
Ja, du kannst Subs in UserForms aufrufen, wenn du CallByName verwendest oder sicherstellst, dass die Subs als Public deklariert sind.