da meine Anfrage schon ziemlich nach unten gerutscht ist und ich immer noch keine wirkliche Lösung habe versuche ich es nochmal :(
Ich möchte ganz trivial per Userform eine 15 stellige Zahl in eine Spalte schreiben. Es soll aber vor dem Eintragen geprüft werden ob die Zahl schon vorhanden ist.
Ich hatte ein solches Problem schonmal mit Application.match gelöst. Es hiess jetzt aber, das _ diese Funktion ein Problem mit den 15 stellen hat. Der u.g. Code Zeigt wie ich es mit der Find Methode versucht habe:
Option Explicit
Public lFreieman As Long
Public manZeile As Range
Public wksi As Worksheets
Private Sub CommandButton1_Click()
Unload Me
End Sub
Private Sub CommandButton2_Click()
Set wksi = Worksheets("i")
If Not IsNumeric(TextBox1.Value) Then
MsgBox "keene Nummer"
Label2.Caption = "ungültig !"
ElseIf Len(TextBox1.Value) 15 Then
Label2.Caption = "ungültig !"
MsgBox "zu kurz oder zu lang!"
With wksi.Range("A:A")
Set manZeile = .Find(TextBox1.Value, LookIn:=xlValues, lookat:=xlWhole)
End With
ElseIf Not manZeile Is Nothing Then
Label2.Caption = "gefunden ! Löschen?"
CommandButton2.Visible = False
CommandButton3.Visible = True
Else
With wksi
lFreieman = .Cells(Rows.Count, 1).End(xlUp).Row + 1
.Cells(lFreieman, 1).Value = TextBox1.Value
Label2.Caption = "Die Daten wurden übernommen !"
End With
End If
End Sub
Private Sub CommandButton3_Click()
wksi.Rows(manZeile).Delete Shift:=xlUp
Label2.Caption = "wurde gelöscht !"
TextBox1.Value = ""
CommandButton2.Visible = True
CommandButton3.Visible = False
End Sub
Private Sub TextBox1_Change()
Label2.Caption = ""
CommandButton2.Visible = True
CommandButton3.Visible = False
End Sub
Das Eintragen der Zahl funktioniert super..er prüft aber nicht ob sie schon vorhanden ist :(
Schaue ich mir die Einzelschritte an, überspringt er die find-Methode eiskalt. er ignoriert sie einfach :(
Was mache ich falsch? Ist die Findmethode auch nicht die Lösungs meines Problems?
Wie müsste der funktionierende Code aussehen?
Ich hoffe sehr Ihr könnt einer VBA-Anfängerin helfen, 2 Tage an diesem Problem und ich komm einfach nicht weiter
Tausend Dank
J.