Anzeige
Archiv - Navigation
836to840
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
836to840
836to840
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Doppeleingabe in adressierter Tabelle verhindern

Doppeleingabe in adressierter Tabelle verhindern
22.01.2007 18:16:29
Malcolm_p
Hallo Leute,
wie kann ich den in Textbox1 eingegebenen Wert gegen ABHWBName, Tabelle1 prüfen, um eine doppelte Erfassung zu verhindern und dies mit einer MsgBox signalisieren?
Hierbei soll die Eingabe in TextBox1 gegen die Spalte 2 der Tabelle1 geprüft werden.
Ich habs per try ´n´error versucht (siehe drei?) aber keinen erfolg verbuchen können.
Hat jemand einen intelligenten Ansatz oder gar eine Lösung?
Herzlichen Dank
Malcolm

Private Sub CommandButton1_Click()
With Workbooks(ABHWBName).Worksheets("Tabelle1")
?If .Cells(Cells(Rows.Count, 2).End(xlUp).Row, 2).Value = TextBox1.Value Then
MsgBox "Bestellnummmer wurde bereits erfasst!"
TextBox1 = ""
Cancel = True
TextBox1.SetFocus
Exit Sub
Else
.Cells(.Cells(Rows.Count, 1).End(xlUp).Row + 1, 1).Value = TextBox3.Value
.Cells(.Cells(Rows.Count, 1).End(xlUp).Row + 0, 2).Value = TextBox1.Value
.Cells(.Cells(Rows.Count, 1).End(xlUp).Row + 0, 3).Value = TextBox2.Value
'End With
'   Blendet die Msgbox nach 1 Sekunden automatisch wieder aus
Const bytZeit As Byte = 1
Dim objWSH As Object, intMSG As Integer
Set objWSH = CreateObject("WScript.Shell")
intMSG = objWSH.Popup("Daten Erfasst!" & Space(10), bytZeit, "Datensatz aufgenommen!")
Set objWSH = Nothing
TextBox3.Value = ""
TextBox1.Value = ""
TextBox2.Value = ""
TextBox1.SetFocus
End If
End With
End Sub

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Doppeleingabe in adressierter Tabelle verhindern
22.01.2007 18:59:26
IngGi
Hallo Malcolm,
deine Version überprüft nur den letzten Eintrag in der Tabelle. Zum Prüfen der gesamten Spalte kannst du z.B. die Find-Methode verwenden:
Dim rng As Range
With Workbooks(ABHWBName).Worksheets("Tabelle1")
Set rng = .Range("B:B").Find(TextBox1.Text)
If Not rng Is Nothing Then
MsgBox "Bestellnummmer wurde bereits erfasst!"
TextBox1 = ""
Cancel = True
TextBox1.SetFocus
'usw.
Wenn allerdings die Bestellnummer ein rein numerischer Wert ist und dieser Wert ist als Zahl - nicht als Text - in den Zellen der Spalte B, dann wird ein vorhanderner Eintrag so nicht gefunden. In diesem Fall musst du "TextBox1.Text" durch "Val(TextBox1.Text)" ersetzen. Bei dieser Variante führt dann allerdings eine nicht rein numerische Angabe in der Textbox zu einem Fehler. Darum solltest du bei rein numerischen Bestellnummern vor dem "Set rng..." die Eingabe in die Textbox daraufhin prüfen, ob sie numerisch ist. Das geht mit
If Not IsNumeric(Textbox1.Text) Then
MsgBox "Eingabe falsch!"
TextBox1 = ""
Cancel = True
TextBox1.SetFocus
End If
Diese Prüfung muss natürlich auch nach dem With Workbooks... kommen!
Gruß Ingolf
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige