Falscheingaben in Excel abfangen und Neueingaben erzwingen
Schritt-für-Schritt-Anleitung
Um Falscheingaben in Excel abzufangen und eine Neueingabe zu erzwingen, kannst Du den folgenden VBA-Code verwenden. Dieser Code wird in das entsprechende Arbeitsblatt eingefügt:
- Öffne Excel und drücke
ALT + F11
, um den VBA-Editor zu öffnen.
- Wähle das gewünschte Arbeitsblatt im Projektfenster aus.
- Füge den folgenden Code in das Codefenster ein:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Range("a1") = "5" Then Call Aktiviere(Range("a1")): Exit Sub
If Range("b2") = "Eingabe" Then Call Aktiviere(Range("b2")): Exit Sub
If Range("c3") = "33" Then Call Aktiviere(Range("c3")): Exit Sub
End Sub
Sub Aktiviere(Target As Range)
On Error Resume Next
Application.EnableEvents = False
Target.Select
Application.EnableEvents = True
End Sub
- Schließe den VBA-Editor und teste die Eingaben in den Zellen A1, B2 und C3.
Häufige Fehler und Lösungen
-
Fehler: Der Code funktioniert nicht.
- Stelle sicher, dass Du den Code im richtigen Arbeitsblatt eingefügt hast und die Zellreferenzen korrekt sind.
-
Fehler: Der Cursor springt nicht zurück.
- Überprüfe, ob
Application.EnableEvents
korrekt gesetzt ist. Wenn es auf False
bleibt, kann der Code nicht wie gewünscht funktionieren.
-
Fehler: Eingaben in UserForms werden nicht erfasst.
- Du kannst den Code anpassen, um auch Eingaben in Textboxen innerhalb von UserForms zu überprüfen. Siehe die Beispiele im nächsten Abschnitt.
Alternative Methoden
Eine weitere Möglichkeit, Falscheingaben zu verhindern, ist die Verwendung von Datenvalidierung in Excel:
- Wähle die Zelle, in der Du die Eingabe validieren möchtest.
- Gehe zu
Daten
> Datenvalidierung
.
- Wähle den Typ der Validierung (z.B. Ganze Zahl, Dezimal, Textlänge) und definiere die Kriterien.
- Setze eine Eingabemeldung oder einen Fehlermeldungstext, um den Benutzer zu informieren.
Praktische Beispiele
Hier ist ein Beispiel für die Verwendung von VBA in einer Textbox eines UserForms:
Private Sub TextBox10_AfterUpdate()
If Not IsDate(Me.TextBox10) Then
MsgBox "Bitte geben Sie das Datum im Format dd.mm.yyyy ein!", vbOKOnly, "Achtung"
Me.TextBox10 = ""
Me.TextBox10.SetFocus
End If
End Sub
Dieses Beispiel überprüft, ob die Eingabe in TextBox10
ein Datum ist und fordert den Benutzer auf, die Eingabe zu wiederholen, wenn dies nicht der Fall ist.
Tipps für Profis
- Nutze benannte Bereiche, um deine Formeln und VBA-Referenzen übersichtlicher zu gestalten.
- Implementiere Fehlerbehandlung in deinen VBA-Skripten, um mögliche Probleme elegant zu lösen.
- Experimentiere mit UserForms für komplexere Eingaben und Validierungen.
FAQ: Häufige Fragen
1. Kann ich den Code auch für andere Zellen anpassen?
Ja, Du kannst die Zellreferenzen im Code anpassen, um andere Zellen zu überwachen.
2. Wie kann ich den Code für mehrere UserForms verwenden?
Du kannst den Code in jedes UserForm einfügen, das Du verwenden möchtest, und die spezifischen TextBox-Namen anpassen.