Hallo,
wusste nicht genau wie ich das Thema nennen sollte. Ich habe eine UserForm mit einem Savebutton. Wenn ich diesen drücke, soll erst mal ein anderes Worksheet nach einem bestimmten Wert durchsucht werden. Wenn dieser bereits vorhanden ist, soll die MsgBox "Überschreiben?" erscheinen. Wenn nicht, dann "neu anlegen?". Soweit so gut. Problem ist aber, wenn der Wert mehrmals vorhanden ist (was durchaus vorkommt)" erscheint die MsgBox so oft, wie der Wert vorhanden ist. Er soll aber logicherweise nur einmal vorkommen. Ich muss die Zeile sicherlich außerhalb der If bedingung schreiben, bin mir aber nicht sicher wo. Außerdem bin ich mir nicht ganz sicher wo die zeile zähler = zähler +1 hinkommt.
Hier der Code:
Private Sub Save1_Click()
Dim wb As Workbook
Dim ws1 As Worksheet, ws2 As Worksheet
Dim fund As String, fund1 As String
Dim such As String, LetzteZeile As Long, i As Long
Dim zähler As Long
Set wb = ActiveWorkbook
Set ws1 = wb.Worksheets("Übersicht")
Set ws2 = wb.Worksheets("Datenbank")
such = Infos.Auftragsnummer.Value 'Wert der Textbox, nach dem gesucht werden soll
With ws2
LetzteZeile = .Cells(.Rows.Count, 2).End(xlUp).Row
For i = 5 To LetzteZeile
If .Cells(i, 2) = such Then
If MsgBox("Auftragsnummer bereits vorhanden. Überschreiben?", vbYesNo) = vbNo Then
Exit Sub
Else: MsgBox "Ok" 'Hier kommt später ein riesen Kopier Code hin, den ich euch ersparen wollte
zähler = zähler + 1
End If
Else
If MsgBox("Auftragsnummer nicht vorhanden. Neu anlegen?", vbYesNo) = vbNo Then
Exit Sub
Else: MsgBox "Ok"
zähler = zähler + 1
End If
End If
Next i
End With
End Sub
Kann man mein Vorhaben irgendwie realisieren? Danke schonmal
Grüße
|