AW: Auswahlliste - Wenn Dann ?
27.05.2008 17:33:07
fcs
Hallo Dani,
das zurücksetzen der Blätter kannst du mit folgendem Makro machen. Dieses gehört in ein allgemeines Modul.
Sub RestSammler()
Dim objWks As Worksheet, lngZeile As Long
For Each objWks In ActiveWorkbook.Worksheets
With objWks
Select Case .Name
Case "Sammler"
'Eingetragenen Zeilen im Sammler löschen
lngZeile = 8 ' Letzte Zeile mit Spaltentitel (unterhalb davon wird gelöscht)
If .Cells(.Rows.Count, 1).End(xlUp).Row > lngZeile Then
.Range(.Rows(lngZeile + 1), _
.Rows(.Cells(.Rows.Count, 1).End(xlUp).Row)).ClearContents
End If
Case "TabelleXYZ", "TabelleZYX" 'Ausnahmeblätter falls erforderlich
'do nothing
Case Else
'Einträge in Spalte 1 (A) löschen
lngZeile = 1 ' Letzte Zeile der Spaltentitel (unterhalb wird angekreuzt)
If .Cells(.Rows.Count, 1).End(xlUp).Row > lngZeile Then
.Range(.Cells(lngZeile + 1, 1), .Cells(.Rows.Count, 1).End(xlUp)).ClearContents
End If
End Select
End With
Next
End Sub
Die letzte(n) Eingabe(n) kannst du löschen mit folgender Ergänzung (ElseIf-Abschnitt) in dem Makro dass du schon hast. In die Zelle mit S-Eintrag gibst du ein l oder L ein. Dann wird jeweils die letzte Zeile im Sammler gelöscht.
'Zellen mit x-Eintrag abarbeiten
For Each objZelle In Target
If LCase(objZelle.Value) = "x" Then
.Cells(lngZeile, 2).Range("A1:E1").Value = _
Target.Offset(0, 1).Range("A1:E1").Value
If .Cells(lngZeile - 1, 1).Value = "Nr." Then
.Cells(lngZeile, 1).Value = 1
Else
.Cells(lngZeile, 1).Value = .Cells(lngZeile - 1, 1).Value + 1
End If
ElseIf LCase(objZelle.Value) = "l" Then 'Eingabe l oder L
'Letzte Zeile(n) wieder löschen
If lngZeile - 1 > 8 Then '8 = Nummer der letzten Titelzeile im Sammelblatt
.Rows(lngZeile - 1).ClearContents
objZelle.ClearContents
Else
MsgBox "Im Sammelblatt sind alle Zeilen gelöscht"
objZelle.ClearContents
End If
End If
If Not IsEmpty(objZelle) Then
objZelle.Value = "S" 'x-durch S ersetzen
End If
Next
Alternativ könnte man natürlich auch erst in allen Tabellen die Zeilen mit x markieren und dann in einem Rutsch alle Einträge in den Sammler übertragen.
Gruß
Franz