Frage von dennis1809bs, 357

Zeilen in excel automatisch ausblenden wenn Datum älter als 4 Wochen.?

Hallo zusammen. Ich habe folgendes Problem mit Excel. Ich habe eine Personalliste mit über 250 MA. Diese müssen sich wenn sie länger als 4 Woche nicht gearbeitet haben neu Anmelden. Wie kann ich es umsetzen wenn in Zelle D ein Datum eingetragen wird und wenn es länger als 4 Woche zurück liegt die ganze Spalte ausgeblendet wird. Die Spalte soll dann in ein zweites Blatt kopiert werden. Wenn da dann wieder ein neues Datum jünger als 4 Wochen eingetragen wird kommt diese zurück in Blatt eins.

Hat jemand eine Idee zur Umsetzung?

Antwort
von GuenterLeipzig, 316

Ich würde das Problem auf Datenbankbasis zum Beispiel MS-ACCESS eleganter lösen.

Dazu schreibst Du alle Daten in eine Tabelle, egal welche Zeiteinheiten dahiner stehen.

Dann legst Du über die Tabelle die unterschiedlichen Abfragen, in denen Du die gewünschten Kriterien mathematisch formulierst.

Fällt jemand aus der <4-Wochen-Abfrage raus, ist er immer noch in der Stammtabelle oder der alternativen Abfrage > 4 Wochen.

In der alternativen Abfrage / Stammtabelle kannst Du dann bei Wiederanmeldung des MA das Anmeldedatum neu setzen und schwupps ist der MA wieder in der Abfrage < 4 Wochen.

Günter

Expertenantwort
von Ninombre, Community-Experte für Excel, 296

Nur mit VBA. Dann würde ich die Zeilen aber auch konsequent löschen nach dem Kopieren.

Sub umkopieren()
For i = 1 To Worksheets("Tabelle1").UsedRange.Rows.Count
If Worksheets("Tabelle1").Cells(i, 4).Value < Date - 28 Then
j = Worksheets("Tabelle2").UsedRange.Rows.Count
Worksheets("Tabelle1").Rows(i).Copy Destination:=Worksheets("Tabelle2").Rows(j + 1)
Worksheets("Tabelle1").Rows(i).Delete
End If
Next

For i = 1 To Worksheets("Tabelle2").UsedRange.Rows.Count
If Worksheets("Tabelle2").Cells(i, 4).Value > Date - 28 Then
j = Worksheets("Tabelle1").UsedRange.Rows.Count
Worksheets("Tabelle2").Rows(i).Copy Destination:=Worksheets("Tabelle1").Rows(j + 1)
Worksheets("Tabelle2").Rows(i).Delete
End If
Next
End Sub

Du kannst das natürlich auch in zwei getrennte Funktionen aufteilen. Im Grund passiert fast das gleiche: Zeilenweise durchschauen, ob das Datum in D kleiner heute - 28 Tage ist, wenn ja an die letzte Stelle der anderen Tabelle kopieren und die Zeile löschen.
Der Weg zurück ist im Grund einfach nur die Datumsprüfung in die andere Richtung und die Quell- und Zieltabellen vertauscht.

Kommentar von dennis1809bs ,

Hallo Danke für die rasche Antwort. Leider klappt die Funktion nur in eine Richtung und auch NUR mit Zellen in denen ein Datum steht. Beim zurück kopieren mit jüngeren Datum verschwindet das Datum aus Tabelle 2 taucht aber nicht in Tabelle 1 auf.

Kommentar von Ninombre ,

Sind Deine Tabellennamen wie im Beispiel tatsächlich auch Tabelle 1 und Tabelle 2 oder musstest Du etwas umbenennen? Beim letzteren Fall bitte sicherhaltshalber überprüfen, ob die Bezeichnungen überall stimmen. Ich habe es in einer leeren Datei eben geprüft, da funktioniert es. Ohne Datum wird ins "Archiv" also Tabelle2 verschoben und bleibt dort bis ein aktuelles Datum gesetzt wird.

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten