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

Prüfung ob Wert aus Textbox schon vorhanden

Forumthread: Prüfung ob Wert aus Textbox schon vorhanden

Prüfung ob Wert aus Textbox schon vorhanden
10.12.2003 09:04:23
Roland
Guten Morgen allerseits!

Mein Problem:

Ich habe eine Userform mit Textfeldern, deren Werte in ein Worksheet einfügt.

Nun soll beim 1. Textfeld geprüft werden, ob der Wert der eingetragen werden soll, schon vorhanden ist. Wenn ja, soll eine MsgBox erscheinen. Denn es dürfen keine doppelten Einträge in der Spalte existieren.

kann mir jemand helfen bitte?

Gruß

Roland
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Prüfung ob Wert aus Textbox schon vorhanden
10.12.2003 09:07:57
ChrisL
Hi Roland

If Application.WorksheetFunction.CountIf(Columns(1), TextBox1) > 0 Then
MsgBox "vorhanden"
Else
MsgBox "nicht vorhanden"
End If

Gruss
Chris
AW: Prüfung ob Wert aus Textbox schon vorhanden
10.12.2003 09:22:26
Roland
Hallo Chris

danke, es funktioniert aber nicht so ganz wie ich möchte, denn er Wert wird trotzdem noch in die Spalte eingetragen.

Nun habe ich es so gemacht, das zunächst ein Klick auf einen Commandbutton "Check" getätigt werden soll.

Private Sub Checkbutton_Click()

If Application.WorksheetFunction.CountIf(Columns(1), Textbox1) > 0 Then
MsgBox "Wert bereits vorhanden"
Else
MsgBox "Wert korrekt, bitte fahren Sie fort"
End If

Nun soll nach dem Check erscheinen ob Wert vorhanden oder nicht. Wenn ich einen bereits vorhandenen Wert eingebe macht er das gleiche wie bei einem nicht-vorhandenen Wert.
Anzeige
AW: Prüfung ob Wert aus Textbox schon vorhanden
10.12.2003 09:44:55
ChrisL
Hi Roland

Du musst mit Exit Sub vorzeitig abbrechen...

If Application.WorksheetFunction.CountIf(Columns(1), Textbox1) > 0 Then
MsgBox "Wert bereits vorhanden"
Exit Sub
Else

'Hier der Eintrag

End If
AW: Prüfung ob Wert aus Textbox schon vorhanden
10.12.2003 09:58:09
Roland
Hi Chris, habe jetzt meinen Code nochmal korrigiert.

Da sagt er mir, "End Sub
erwartet" ..

Habe dann "End Sub
" noch eingefügt am Ende.

Dennoch sagt er mir jetzt imm wieder dass der Eintrag okay ist, egal ob er schon existiert oder nicht. Bereits vorhandene Einträge werden nicht als bereits vorhanden gemeldet.

Hier mal meinen kompletten Code:


Private Sub Checkbutton_Click()
If Application.WorksheetFunction.CountIf(Columns(1), Stammnummer) > 0 Then
MsgBox "Stammnummer bereits vorhanden"
Exit Sub
Else
MsgBox "Stammnummer okay"
End If
End Sub

Anzeige
AW: Prüfung ob Wert aus Textbox schon vorhanden
10.12.2003 10:26:43
ChrisL
Hi Roland

End Sub
schliesst die Prozedur ab, Exit Sub verlässt die Prozedur vorzeitig.

Vielleicht so...


Private Sub Checkbutton_Click()
If Application.WorksheetFunction.CountIf(Columns(1), Cstr(Stammnummer)) > 0 Then
MsgBox "Stammnummer bereits vorhanden"
Exit Sub
Else
MsgBox "Stammnummer okay"
End If
End Sub


Ansonsten musst du mal eine Beispieldatei in den Anhang stellen.

Gruss
Chris
Anzeige
AW: Prüfung ob Wert aus Textbox schon vorhanden
10.12.2003 10:35:17
Roland
Problem gelöst!!!

Vielen Dank!!!
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Prüfung auf doppelte Einträge in einer Excel-Userform


Schritt-für-Schritt-Anleitung

Um zu überprüfen, ob ein Wert aus einer Textbox bereits in einer Spalte eines Worksheets vorhanden ist, kannst du die folgende Schritt-für-Schritt-Anleitung befolgen:

  1. Öffne die VBA-Entwicklungsumgebung in Excel, indem du Alt + F11 drückst.

  2. Füge eine Userform hinzu, falls noch nicht vorhanden.

  3. Erstelle ein Textfeld (Textbox1) und einen Commandbutton (Checkbutton) in der Userform.

  4. Füge den folgenden VBA-Code in das Codefenster der Userform ein:

    Private Sub Checkbutton_Click()
        If Application.WorksheetFunction.CountIf(Columns(1), CStr(TextBox1.Value)) > 0 Then
            MsgBox "Wert bereits vorhanden"
            Exit Sub
        Else
            MsgBox "Wert korrekt, bitte fahren Sie fort"
        End If
    End Sub
  5. Teste die Userform, indem du verschiedene Werte in die Textbox eingibst und auf den Button klickst.


Häufige Fehler und Lösungen

1. Fehler: Der Wert wird trotzdem in die Spalte eingetragen, auch wenn er bereits vorhanden ist.
Lösung: Stelle sicher, dass der Exit Sub Befehl korrekt verwendet wird, um das Einfügen des Wertes zu verhindern.

2. Fehler: Fehlermeldung „End Sub erwartet“.
Lösung: Achte darauf, dass der gesamte Code korrekt abgeschlossen ist. Füge am Ende der Prozedur ein End Sub hinzu.

3. Fehler: Immer die Meldung „Wert korrekt“, egal ob vorhanden oder nicht.
Lösung: Überprüfe, ob der Textbox-Wert korrekt referenziert wird, und stelle sicher, dass CStr(TextBox1.Value) verwendet wird, um den Wert der Textbox zu prüfen.


Alternative Methoden

Eine alternative Methode zur Prüfung auf doppelte Einträge könnte die Verwendung von Datenüberprüfung innerhalb des Excel-Arbeitsblatts sein. Du kannst eine Liste der erlaubten Werte erstellen und dann die Datenüberprüfung aktivieren:

  1. Markiere die Spalte, in der die Werte überprüft werden sollen.
  2. Gehe zu Daten > Datenüberprüfung.
  3. Wähle „Liste“ als Typ und gib die Werte ein oder verwende einen Bezug auf einen Bereich.
  4. Das Arbeitsblatt wird nun warnen, wenn ein doppelter Wert eingegeben wird.

Praktische Beispiele

Hier sind einige Beispiele, wie du die Prüfung auf doppelte Einträge in einer Userform umsetzen kannst:

  • Beispiel 1: Wenn du eine Liste von Kundenstammnummern verwalten möchtest, kannst du den oben genannten Code verwenden, um sicherzustellen, dass keine doppelten Nummern eingegeben werden.

  • Beispiel 2: Bei der Eingabe von Produktcodes in ein Inventar-System kannst du die gleiche Logik anwenden, um doppelte Einträge zu vermeiden.


Tipps für Profis

  • Verwende Trim(), um führende und nachfolgende Leerzeichen aus den Benutzereingaben zu entfernen, bevor du die Prüfung durchführst:

    If Application.WorksheetFunction.CountIf(Columns(1), Trim(CStr(TextBox1.Value))) > 0 Then
  • Füge eine Logging-Funktion hinzu, um alle Eingaben zu protokollieren. Dies kann hilfreich sein, um nachzuvollziehen, welche Werte eingegeben wurden.

  • Erwäge die Verwendung von Regex, um komplexere Validierungen durchzuführen, wenn die zu prüfenden Werte speziellen Mustern folgen müssen.


FAQ: Häufige Fragen

1. Frage
Wie kann ich sicherstellen, dass die Prüfung nur auf eine bestimmte Spalte angewendet wird?
Antwort: Du kannst die CountIf-Funktion so anpassen, dass sie nur auf einen bestimmten Bereich verweist, z.B. CountIf(Range("A1:A100"), ...).

2. Frage
Was mache ich, wenn ich mehrere Textboxen habe?
Antwort: Du kannst die Logik in jeder Click-Prozedur entsprechend wiederholen oder eine Funktion erstellen, die alle Textboxen überprüft, bevor du die Einträge speicherst.

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