AW: Datensatz automatisch löschen
16.04.2007 22:57:00
Daniel
Hallo
du kannst dir das Datum und den Platz zur selektierten Zelle raussuchen.
dann kannst du auf dem Blatt "Camper" die Anzeige per Autofilter einschränken und dann die Zeile löschen.
als code sieht das dann so aus:
(ich habs in dein Makro integriert)
Sub BuchungLöschen()
Dim Buchung As Range
Dim Name As String
Dim Datum1
Dim Platz As String
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")
.Cells(1, 1).AutoFilter Field:=8, Criteria1:=Platz
.Cells(1, 1).AutoFilter Field:=9, Criteria1:=Datum1
If .Cells(65536, 1).End(xlUp).Value Name Then
MsgBox ("Name stimmt nicht überein." & Chr(10) & "Löschvorgang wird abgebrochen")
.Select
Exit Sub
End If
.Cells(65536, 1).End(xlUp).EntireRow.Delete
.ShowAllData
End With
With Buchung
.HorizontalAlignment = xlGeneral
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
.Borders(xlDiagonalDown).LineStyle = xlNone
.Borders(xlDiagonalUp).LineStyle = xlNone
.Borders(xlEdgeLeft).LineStyle = xlNone
.Borders(xlEdgeTop).LineStyle = xlNone
.Borders(xlEdgeBottom).LineStyle = xlNone
.Borders(xlEdgeRight).LineStyle = xlNone
.Borders(xlInsideVertical).LineStyle = xlNone
.Borders(xlInsideHorizontal).LineStyle = xlNone
.Interior.ColorIndex = xlNone
.ClearContents
End With
End Sub
Gruß, Daniel