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

Falscheingabe abfangen und Neueingabe erzwingen

Forumthread: Falscheingabe abfangen und Neueingabe erzwingen

Falscheingabe abfangen und Neueingabe erzwingen
30.09.2005 10:21:51
Horst
Hallo User,
eine kurze Frage. Wie kann ich mit einem kurzen VBA-Code die Falscheingabe bzw.
Nichteingabe von Zahlen bzw. Buchstaben abfangen, und das ist das eigentliche Problem, die Neueingabe erzwingen? Das heisst, der Cursor soll wieder in das Feld springen, wo die Falscheingabe erfolgte, solange bis Text oder Zahlen bzw. überhaupt was darin steht.
Horst !
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Falscheingabe abfangen und Neueingabe erzwingen
30.09.2005 10:47:14
MichaV
Hallo,
meinst Du das?
Option Explicit

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
'MsgBox "In " & Target.Address & " muss was eingegeben werden!", vbInformation + vbOKOnly
Application.EnableEvents = False
Target.Select
Application.EnableEvents = True
End Sub
Gruß- Micha
PS: Rückmeldung wäre nett.
Anzeige
AW: Falscheingabe abfangen und Neueingabe erzwingen
30.09.2005 11:35:00
Horst
Hallo Micha,
danke, das sieht doch schon ziemlich gut aus, ich habe es schon in einem Arbeitsblatt probiert und es funktioniert. Kann ich anstelle von Zellen auch Userforminhalte (Textbox) kontrollieren bzw. diese an die Prüfprozedur übergeben?
Horst
AW: Falscheingabe abfangen und Neueingabe erzwingen
04.10.2005 22:27:21
DieterB
Hallo Horst,
bei diesem Beispiel wird in einer UF geprüft, ob TextBox10 ein Datum enthält:
If Me.TextBox10 Format(CDate(Me.TextBox10), "dd.mm.yyyy") Then
MsgBox ("Bitte geben Sie das Datum in dem Format dd.mm.yyyy = 28.09.2005 ein!"), vbOKOnly, "Achtung"
Me.TextBox10 = ""
Me.TextBox10.SetFocus
Exit Sub
End If
Fehler:
If Err.Number = 13 Then
MsgBox "Sie haben versucht Text einzugeben Bitte korrigieren!", vbOKOnly, "Hinweis"
Me.TextBox10 = ""
Me.TextBox10.SetFocus
Exit Sub
End If
Cells.Select
Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlYes, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("A1").Select
Gruß DieterB
Anzeige
;
Anzeige

Infobox / Tutorial

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:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Wähle das gewünschte Arbeitsblatt im Projektfenster aus.
  3. 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
  1. 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:

  1. Wähle die Zelle, in der Du die Eingabe validieren möchtest.
  2. Gehe zu Daten > Datenvalidierung.
  3. Wähle den Typ der Validierung (z.B. Ganze Zahl, Dezimal, Textlänge) und definiere die Kriterien.
  4. 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.

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