Informationen und Beispiele zum Thema MsgBox | |
---|---|
![]() |
MsgBox-Seite mit Beispielarbeitsmappe aufrufen |
https://www.herber.de/bbs/user/140108.xlsm
Hallo Ihr lieben,
Ich würde gerne in der anhängenden Datei folgendes über den Sortieren Button Realisieren:
Wenn in dem Registerblatt "Übergabe" eine Aufgabe als erledigt steht und diese dann älter ist als 2 Wochen (im Vergleich mit dem Datum "Heute"), soll diese Im "Archiv" aufgelistet werden.
Vorab schonmal Vielen lieben Dank für Eure Hilfe
Sub Copy_to_Archiv() Dim wksQ As Worksheet, zeiQ As Long, zeiQL As Long, zeiQT As Long Dim wksZ As Worksheet, zeiZ As Long Dim StatusAutofilter As Boolean Set wksQ = ActiveWorkbook.Worksheets("Übergabe") Set wksZ = ActiveWorkbook.Worksheets("Archiv") zeiQT = 1 'Zeile mit den Spaltentiteln im Blatt Übergabe With wksZ zeiZ = .Cells(.Rows.Count, 1).End(xlUp).Row + 1 End With With wksQ StatusAutofilter = .AutoFilterMode If .AutoFilterMode = True Then If .FilterMode = True Then .ShowAllData zeiQ = .Cells(.Rows.Count, 1).End(xlUp).Row Else zeiQ = .Cells(.Rows.Count, 1).End(xlUp).Row .Range(.Rows(zeiQT), .Rows(zeiQ)).AutoFilter End If 'Autofilter setzen 'Spalte C (erledigt) = a .AutoFilter.Range.AutoFilter field:=3, Criteria1:="=a" 'Spalte B (Festgestellt am) <= Heute - 14 .AutoFilter.Range.AutoFilter field:=2, Criteria1:="<=" & CDbl(Date - 14) zeiQL = .Cells(.Rows.Count, 1).End(xlUp).Row If zeiQL = zeiQT Then MsgBox "Keine erledigten Einträge älter als 14 Tage" Else .Range(.Rows(zeiQT + 1), .Rows(zeiQL)).Copy Destination:=wksZ.Cells(zeiZ, 1) 'in Spalte C der kopierten Zeilen WAHR eintragen, um archivierte Zeilen zu markieren .Range(.Cells(zeiQT + 1, 3), .Cells(zeiQL, 3)).Value = True .ShowAllData 'Archivierte Zeilen löschen .Range(.Cells(zeiQT + 1, 3), .Cells(zeiQ, 3)).SpecialCells(xlCellTypeConstants, _ xlLogical).EntireRow.Delete End If If StatusAutofilter = False Then .AutoFilterMode = False End If End With End Sub