Hallo,
in einer Tabelle sollen max. 31 Einträge so angelegt werden, daß sich mit einem Neueintrag (also 32. Eintrag) der jeweils älteste Eintrag gelöscht wird. Wie kann man das am besten bewerkstelligen? Vielen Dank für einen nützlichen Tipp.
MfG
Hallo Hans,
das würde ich per vba machen.
Angenommen, Du schreibst Deine Einträge immer in Zelle A1. Dann wird im 2. Schritt dieser Eintrag in B32 kopiert und das aktuelle Datum in C32 geschrieben.
3. Sortieren der Zellen B1 bis C32 nach Spalte C
4. Löschen der Einträge in B32 und C32
Das fertige selbststartende Makro könnte z. B. so aussehen:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Address = „$A$1“ Then
Range(„B32“) = Range(„A1“)
Range(„C32“) = Now()
’ Range(„B1:C32“).Select
ActiveWorkbook.Worksheets(„Tabelle1“).Sort.SortFields.Clear
ActiveWorkbook.Worksheets(„Tabelle1“).Sort.SortFields.Add Key:=Range(„C1:C32“ _
), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets(„Tabelle1“).Sort
.SetRange Range(„B1:C32“)
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range(„B32:C32“).ClearContents
End If
End Sub
Freundliche Grüße
Thomas