If-Abfrage mit Input-Box in Excel VBA
Schritt-für-Schritt-Anleitung
- Öffne Excel und drücke
ALT + F11, um den VBA-Editor zu starten.
- Füge ein neues Modul hinzu, indem du im Projektfenster mit der rechten Maustaste auf „VBAProject“ klickst und „Einfügen“ > „Modul“ wählst.
- Kopiere den folgenden Code in das Modul:
Private Sub CommandButton2_Click()
Dim s As String
s = InputBox("Geben Sie die Vertreternummer ein, dessen Arbeitsmappe neu erstellt werden soll!")
If s = "1" Then
Sheets("01 Seidenschwarz").Select
Sheets("01 Seidenschwarz").Unprotect "aaa"
Application.OnTime Now + TimeValue("00:00:01"), "FormelTeil1"
ElseIf s = "2" Then
Sheets("02 Frey").Select
Sheets("02 Frey").Unprotect "aaa"
Application.OnTime Now + TimeValue("00:00:01"), "FormelTeil1"
ElseIf StrPtr(s) = 0 Then
MsgBox "Abgebrochen"
Else
MsgBox "Achtung!"
End If
End Sub
- Schließe den VBA-Editor und kehre zu Excel zurück.
- Füge einen Button zu deinem Arbeitsblatt hinzu und weise ihm das Makro
CommandButton2_Click zu.
Häufige Fehler und Lösungen
-
Fehler: "Achtung!" wird immer angezeigt.
- Stelle sicher, dass die
ElseIf-Bedingungen korrekt sind und dass die MsgBox nur bei ungültigen Eingaben angezeigt wird.
-
Fehler: "Typen unverträglich".
- Dieser Fehler tritt auf, wenn der Benutzer die Input-Box abbricht. Stelle sicher, dass du die Eingabe als String behandelst.
-
Lösung für Input-Box Abbruch:
- Verwende
StrPtr(s) = 0, um zu prüfen, ob der Benutzer die Eingabe abgebrochen hat.
Alternative Methoden
- Verwendung von
Select Case:
Ein alternativer Ansatz könnte die Verwendung von Select Case sein, um die Eingaben zu überprüfen:
Select Case s
Case "1"
' Code für Fall 1
Case "2"
' Code für Fall 2
Case Else
MsgBox "Achtung!"
End Select
- Benutzerdefinierte Formulare:
Du kannst auch ein benutzerdefiniertes UserForm erstellen, um die Eingabe zu vereinfachen und die Benutzererfahrung zu verbessern.
Praktische Beispiele
Hier ist ein Beispiel, wie du den Code für ein Arbeitsblatt verwenden kannst:
- Erstelle zwei Arbeitsblätter in deiner Excel-Datei: „01 Seidenschwarz“ und „02 Frey“.
- Schütze die Arbeitsblätter mit dem Passwort „aaa“.
- Füge einen Button hinzu und weise den oben genannten Code zu.
- Teste die Funktion, indem du verschiedene Werte in die Input-Box eingibst.
Tipps für Profis
-
Eingabevalidierung:
Stelle sicher, dass die Eingaben validiert werden, um unerwartete Fehler zu vermeiden. Du kannst die Eingaben mit Funktionen wie IsNumeric überprüfen.
-
Debugging:
Nutze Debug.Print, um den Wert von Variablen während der Ausführung deines Codes zu überwachen.
-
Fehlerbehandlung:
Implementiere eine umfassende Fehlerbehandlung, um unerwartete Situationen zu verwalten und den Benutzer über Probleme zu informieren.
FAQ: Häufige Fragen
1. Was ist eine Input-Box in VBA?
Eine Input-Box ist ein einfaches Dialogfeld, das den Benutzern ermöglicht, Daten in eine Anwendung einzugeben.
2. Wie kann ich sicherstellen, dass die Eingabe nur Zahlen sind?
Du kannst die Funktion IsNumeric verwenden, um zu überprüfen, ob die Eingabe eine Zahl ist.
3. Was passiert, wenn der Benutzer die Input-Box abbricht?
Wenn die Input-Box abgebrochen wird, kannst du dies mit StrPtr(s) = 0 abfangen und eine entsprechende Meldung anzeigen.