Excel - Eingabe überprüfen

Dieses Thema Excel - Eingabe überprüfen im Forum "Microsoft Office Suite" wurde erstellt von neojade, 26. Sep. 2006.

Thema: Excel - Eingabe überprüfen Hallo, ich möchte in Excel die Eingabe des Benutzers in eine Zelle überprüfen, eigentlich würde das mit...

  1. Hallo,

    ich möchte in Excel die Eingabe des Benutzers in eine Zelle überprüfen, eigentlich würde das mit Worksheet_Change einfach gehen. Das Problem ist nun das die Eingabe gleichzeitig noch geändert wird (Leerzeichen und Bindestriche entfernt), dadurch bekomme ich natürlich eine Endlosschleife. Worksheet_SelectionChange geht auch nicht da sonst bei jedem Klick in eine Zelle eine Fehlermeldung aufploppt wenn die Eingabe falsch ist (also msgbox von mir).

    Gibt es noch eine andere Möglichkeit dafür oder kann ich irgendwie festlegen das das Makro nur einmal ausgeführt wird bei einer änderung an der Zelle (ein seperater Makro Button geht leider auch nicht, da zu kompliziert für die Anwender)?

    Vielen Dank schonmal.
     
  2. Hallo neojade,

    vielleicht kann man das mit einer Textbox lösen, die über die Zelle gelegt wird.

    a) TextBox1 über der Zelle anlegen
    b) TextBox1 markieren, rechte Maustaste -> Steuerelement formatieren-> Reiter->Eigenschaften' ->->von Zellposition und -größe abhängig' setzen
    c) folgendes Makro in die Code-Seite der Tabelle einfügen
    (bei <<<Weiter Prüfungen>>> weiter Prüfungen einbauen)
    Tabellenlasche markieren, rechte Maustaste->Code anzeigen
    in das sich öffnende Fenster folgenden Code per Copy/Paste einfügen:
    Code:
    Option Explicit
    Private Sub TextBox1_LostFocus()
      Dim sTxt As String, pos As Long, x As Long
      Dim ZeichenEntfernen As Variant
      
     ->Inhalt der Zelle hinter der Textbox löschen
      Me.TextBox1.TopLeftCell = 
        
      sTxt = Me.TextBox1.Text
     ->Prüfen, ob Textbox Text ethält
      If sTxt =  Then Exit Sub
      
     ->Nicht gewollte Zeichen aus Text entfernen
      ZeichenEntfernen = Array( , -)
      For x = LBound(ZeichenEntfernen) To UBound(ZeichenEntfernen)
        pos = InStr(1, sTxt, ZeichenEntfernen(x))
        Do While pos > 0
          sTxt = Left(sTxt, pos - 1) & Right(sTxt, Len(sTxt) - pos)
          pos = InStr(1, sTxt, ZeichenEntfernen(x))
        Loop
      Next
      
     ->Prüfen, ob Text noch Zeichen enthält
      If sTxt =  Then
        MsgBox Bitte etwas vernünftiges eingeben.
        Me.TextBox1.Activate
        Exit Sub
      End If
      
     -><<<Weiter Prüfungen>>>
      bok = True->Kennzeichen: alles ok
      
      If Not bok Then
        MsgBox _
          Die Eingabe enthält Fehler. & vbLf _
          & Bitte korrigieren Sie die Eingabe.
        Me.TextBox1.Activate
      Else
       ->übrigen Text in Zelle speichern
        Me.TextBox1.TopLeftCell = sTxt
      End If
    End Sub
    Das makro wird aktiv, wenn die textbox verlassen wird.

    Die Wirkung des Makros:
    a) holt sich den Text aus der Textbox
    b) entfernt Leerzeichen und Bindestriche
    c) prüft diesen Text ( selber noch dazubauen)
    d) speichert diesen Text in der Zelle hinter der Textbox

    Ist der Text fehlerbehaftet, gibt das Makro eine Fehlermeldung aus und setzt den focus wieder auf die Textbox.

    Gruß Matjes :) 
     
  3. Vielen Dank für die schnelle Antwort :) .

    Hab meinen Code mit deinem zusammengemischt und hier das fertige Ergebnis falls mal jemand was ähnliches braucht.

    Code:
    Private Sub TextBox1_LostFocus()
     If TextBox1.Text =  Then Exit Sub
    ->Eingabe überprüfen ob Buchstaben oder sonstiges vorhanden ist
     If TextBox1.Text Like *[0-9-] Then
     ->Leerzeichen und Striche entfernen
      TextBox1.Text = Replace(TextBox1.Text,  , )
      TextBox1.Text = Replace(TextBox1.Text, -, )
     ->Länge überprüfen
      If Len(TextBox1.Text) > 20 Then MsgBox Nummer hat mehr als 20 Stellen, Eingabe bitte pruefen
      If Len(TextBox1.Text) < 20 Then MsgBox Nummer hat weniger als 20 Stellen, Eingabe bitte pruefen
     ->Format festlegen
      TextBox1.Text = Format(TextBox1.Text, ####-####-##-### ### ####)
     Else
      MsgBox Nur Zahlen, Bindestrich und Leerzeichen als Eingabe erlaubt
      TextBox1.Activate
     End If
    End Sub
    
     
Die Seite wird geladen...

Excel - Eingabe überprüfen - Ähnliche Themen

Forum Datum
Excel soll Eingabe identer Angaben anzeigen Windows XP Forum 20. Juni 2010
excel - schnelle texteingabe per pulldownmenü Microsoft Office Suite 30. Okt. 2008
Excel: Zellen Sperren bei Eingabe einer gewissen Zahl Microsoft Office Suite 28. Nov. 2007
Excel: Blattschutz & Navigation (mit Pfeiltasten & Eingabetaste) Microsoft Office Suite 11. März 2007
Excel Sortierung automatisch nach neuer Eingabe Microsoft Office Suite 8. Juni 2006