AW: Buchung
28.05.2011 10:40:25
Christian
Hallo,
hier ein Ansatz mit 'ner Schleife in deinen Code eingesetzt:
Sub BuchungLöschen()
Dim Buchung As Range
Dim Name As String
Dim Datum1 As Date
Dim Platz As String
Dim blnFnd As Boolean
Dim i As Long
Set Buchung = Selection
With Buchung(1)
Name = .Value
Platz = Cells(.Row, 1).Value
If Cells(4, .Column).Value "" Then
Datum1 = Cells(4, .Column).Value
Else
Datum1 = Cells(4, .Column - 1).Value
End If
End With
With Sheets("Camper")
For i = 2 To .Cells(.Rows.Count, 1).End(xlUp).Row
If .Cells(i, 1).Value = Name _
And .Cells(i, 10).Value = Platz _
And .Cells(i, 11).Value = Datum1 Then
blnFnd = True
.Rows(i).Delete
Exit For
End If
Next
If Not blnFnd Then
MsgBox "Datensatz nicht gefunden", vbCritical, "Fehler"
Exit Sub
End If
End With
With Buchung
.HorizontalAlignment = xlGeneral
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
.Borders.LineStyle = xlNone
.Interior.ColorIndex = xlNone
.ClearContents
End With
End Sub
Prinzipiell würde ich das Thema anders aufziehen, zB:
- vor dem Löschen die Daten in einer Userform anzeigen (so häufig wird ja auch nicht gelöscht).
- jeder Buchung einen eindeutige ID (Buchungsnummer) vergeben.
- die Daten normalisieren im Sinne einer Datenbank.
Aber das wird dann schon sehr umfangreich.
Grüße
Christian