Office: Eingabe prüfen

Helfe beim Thema Eingabe prüfen in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo, Ich möchte per VBA die Eingabe in Feldern einer Spalte prüfen. Welche Events kann ich dafür nutzen? 'worksheet_selectionChange' feuert zu spät,... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von User, 9. Februar 2016.

  1. Eingabe prüfen


    Hallo,
    Ich möchte per VBA die Eingabe in Feldern einer Spalte prüfen.

    Welche Events kann ich dafür nutzen? 'worksheet_selectionChange' feuert zu spät, weil der Fokus dann schon auf dem nächsten Feld ist.

    Wie kann ich verhindern, dass das Feld verlassen wird, ohne die Eingabe korrigiert oder gelöscht zu haben?

    Ein Dropdown-Feld kann ich leider nicht benutzen, da die möglichen Eingaben von anderen Daten abhängig sind, die ich erst auswerten kann, wenn eine Eingabe im betreffenden Feld erfolgt.

    :)
     
  2. Hajo_Zi
    Hajo_Zi Erfahrener User
    Die Eingabe ist erst mit Enter beendet, da ist Change das richtige Ereignis.
     
    Hajo_Zi, 11. Februar 2016
    #2
  3. \@Hajo
    Danke für die Antwort.
    Das funktioniert aber nur, wenn ich den Wert neu eingebe oder ändere.
    Ich habe folgende Sub gebastelt:
    Code:
     
  4. Hajo_Zi
    Hajo_Zi Erfahrener User

    Eingabe prüfen

    das geht nicht, da keine Eingabe.
     
    Hajo_Zi, 11. Februar 2016
    #4
  5. Hallo!
    Du musst den alten Wert durch ein Selection_Change zunächst in einer modulweiten Variable zwischenspeichern und ihn im _Change bei Nichterfüllen der Bedingung wieder zurückschreiben.

    Allerdings:
    Sowas kannst Du doch ganz einfach ohne VBA mit der Datenüberprüfung lösen.

    Gruß Ralf
     
  6. Hallo Dinkel,
    Das habe ich mir auch gedacht !

    Wenn es aber eine VBA-Lösung sein sollte, dann wäre das ein mögliches Vorgehen.
    Code:
     
    aloys78, 11. Februar 2016
    #6
  7. Danke für eure Antworten!

    @Aloys
    Leider funktoniert deine Lösung nicht, da ich nach einem Fehler das Feld einfach mit Enter verlassen kann.

    Inzwischen hatte ich folgende Idee (die Ralf dann auch angedeutet hat):

    Code:
     
  8. Eingabe prüfen

    Hallo Dinkel,
    Das kann ich im Moment nicht nachvollziehen. Kannst Du mal die einzelnen Schritte beschreiben, mit denen Du dies erreichst.

    Gruß
    Aloys
     
    aloys78, 12. Februar 2016
    #8
  9. \@aloys
    Ich habe deinen Code in meine Tabelle kopiert (und meinen Code natürlich auskommentiert).
    Dann habe ich 'kompiliert'.
    Gebe ich in Feld (3,4) 3 ein, erscheint die MBox und der Wert wird gelöscht. OK
    Drücke ich jetzt nur Enter, bin ich im nächsten Feld.

    Gut - das ist ja auch OK und entspricht meiner ursprünglichen Frage.
    Ich habe nur zufällig in meiner Tabelle schon eine Anzahl gültiger Einträge in Spalte 4 gehabt und dann irgend einen auf falsch geändert. Deine Routine löscht diesen Wert dann (was ja nicht mehr als Fehler interpretiert wird) und so ensteht eine Lücke in meiner Spalte.

    Ich müsste meine Logik vielleicht noch so erweitern, dass Lücken in der Spalte nicht erlaubt sind.

    Deine Lösung funktioniert also im Rahmen meiner Frage und ich entschuldige mich für

    denn diese Aussage war nicht ausreichend durchdacht. Sorry.

    Gruß
    Dinkel
     
  10. Hallo Dinkel,

    danke für die Rückmeldung.

    Ich habe meinen Code entsprechend überarbeitet und die Änderungen rot markiert; er ersetzt den bisherigen.
    Dort habe ich auch eine Definition angeführt, die in einem allgemeinen Modul abgelegt werden muss.
    Code:
     
  11. Danke Aloys,

    damit kann ich meine Zwecke gut erfüllen. Vielen Dank für deine Mühe!
    Ich habe noch eine Kleinigkeit geändert, nämlich noch ein

    target.select

    vor

    application.enable_events = false

    damit der Cursor im Fehlerfeld bleibt.

    Statt p_select in einem modul public zu definieren, geht auch ein
    dim p_select..
    im Formularkopf (gleich nach explicit none). Der scope (Gültigkeitsbereich) solcher Definitionen gilt dann zumindest für die gesamte Tabelle. Erst wenn ich die Funktion in verschiedenen Tabellen nutzen möchte, muss ich sie in ein Modul auslagern.

    Schade, dass Excel keine Events wie before_update (Access) feuert, denn auch im Fehlerfall werden leider zuerst Formeln abhängiger Felder ausgewertet, so dass dort dann ungewollte Ergebnisse errechnet und dargestellt werden. Oder kann man das irgendwie verhindern? (Vielleicht indem man in ein weiteres Feld z.B. eine 1 für OK schreibt und die abhängigen Formeln dann mit
    Wenn("testfeld"=1;...formel...;"") klammert.)

    Übrigens habe ich mein Beispiel stark vereinfacht; jetzt werde ich mich daran setzen, die gesamte Prüf-Logik in das Gerüst einzubauen.

    Danke und Gruß,

    Dinkel
     
Thema:

Eingabe prüfen

Die Seite wird geladen...
  1. Eingabe prüfen - Similar Threads - Eingabe prüfen

  2. Während der Eingabe überprüfen ob Zahl oder Text

    in Microsoft Access Hilfe
    Während der Eingabe überprüfen ob Zahl oder Text: Hallo, wenn ich in einem Zahlenfeld einen Text eingebe erfolgt folgende Meldung [ATTACH] Wie kann ich die Meldung abfangen um eine eigene Meldung auszugeben? Das Zahlenfeld ist mit 0 vor belegt...
  3. Eingaben in 2 Feldern auf Plausibilität prüfen

    in Microsoft Excel Hilfe
    Eingaben in 2 Feldern auf Plausibilität prüfen: Hallo liebe Helferlein *;)* Folgende Aufgabenstellung: Eingabe in Zelle A1 muss einen Wert (auch "0") haben. Wenn nein, Hinweis "Pflichtfeld" Auch Zelle A2 muss einen Wert (auch "0") haben. Wenn...
  4. Textboxen auf Eingabe prüfen

    in Microsoft Excel Hilfe
    Textboxen auf Eingabe prüfen: Ich habe in meinem Code einen Fehler den ich nicht lösen kann. Die Überprüfung der Textboxen funktioniert, nur sollte erst auf die nächst multipage gewechselt werden wenn die zu überprüfenden...
  5. Userform, Bei Eingabe prüfen ob wert schon vorhanden

    in Microsoft Excel Hilfe
    Userform, Bei Eingabe prüfen ob wert schon vorhanden: Guten Tag in die Runde, mit dem beigefügten Code übergebe ich die in eine Userform eingegeben Daten an die Exceltabelle. Das klappt auch wunderbar. Nun war es vorgekommen, dass ich Daten doppelt...
  6. Wert nach Eingabe in Zelle prüfen

    in Microsoft Excel Hilfe
    Wert nach Eingabe in Zelle prüfen: Hey, ich möchte wie im Betreff schon steht, einen Wert der in eine Zelle geschrieben wird prüfen bzw in eine Variable schreiben. Wie stelle ich das am klügsten an? 1 Möglichkeit wäre, wenn der...
  7. Prüfen ob Eingabe schon vorhanden

    in Microsoft Excel Hilfe
    Prüfen ob Eingabe schon vorhanden: Hallo liebe Excel-Gurus Arbeite mit Excel 97 und habe folgendes Problem: Habe ein Excel-Sheet in welchem in der Spalte C 6-stellige Zahlen stehen. Ich füge nun eine weiter Zahl an oder ändere...
  8. Eingabe in Inputbox auf richtiges Format prüfen

    in Microsoft Access Hilfe
    Eingabe in Inputbox auf richtiges Format prüfen: Hallo Gemeinschaft, ich hab da mal wieder ein keines POroblem, welches ich auch nach längeren Stöbern in bereits vorhanden Beiträgen nicht hab lösen können. Gibt es die Möglichkeit das Format...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden