Anzeige
Archiv - Navigation
1800to1804
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Inhalte gestern löschen und kopieren

Inhalte gestern löschen und kopieren
22.12.2020 08:54:16
Steffchen
Hallo,
Ich möchte gern die Inhalte von gestern löschen und die Inhalte von heute zum Anfang der Tabelle kopiert haben. So das am Ende des Makros nur noch heute in der Tabelle steht… Inhalte pro Zeile immer von z.B. A2:BI2
Den Tag darauf muss ich das selbe wieder tun, Inhalte gestern löschen und heute nach oben kopieren.
Vielleicht kann mir kurz vor Weihnachten jemand helfen.
Ansonsten wünsche ich allen schöne Weihnachten und einen guten Rutsch ins neue Jahr.
Beispieldatei anbei.
https://www.herber.de/bbs/user/142496.xlsx

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Inhalte gestern löschen und kopieren
22.12.2020 08:58:22
Hajo_Zi
es soll ja eine VBA frewie Lösung sein , darum XLSX.
Benutze Autofilter und lösche den sichtbaren Bereich, Start, Bearbeiten, Suchen..., Gehe zu, Inhalte, sichtbare Zellen.
Excel hat auch einen Makrorecorder.

AW: Inhalte gestern löschen und kopieren
22.12.2020 09:05:24
Steffchen
Es soll keine VBA freie Lösung sein, ich möchte keine Daten speichern!
Das heißt ich brauch eigentlich immer nur die zwei Tage. Ich muss die Inhalte von gestern löschen und dann kommen die neuen von heute dazu!
AW: Inhalte gestern löschen und kopieren
22.12.2020 09:25:51
Nepumuk
Hallo,
teste mal:
Option Explicit

Public Sub DeleteOldDataset()
    Dim lngRow As Long
    For lngRow = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1
        If Cells(lngRow, 1).Value < Date Then _
            Call Range(Cells(lngRow, 1), Cells(lngRow, 61)).Delete(Shift:=xlShiftUp)
    Next
End Sub

Gruß
Nepumuk
Anzeige
AW: Inhalte gestern löschen und kopieren
22.12.2020 12:01:10
Steffchen
Also es funktioniert soweit ganz gut, nur löscht es ja die 61 Zeilen bis BI und alle Formeln die sich auf die Zeilen beziehen (also zum Beispiel BJ2:BV2) fehlt der Bezug!
Können die Daten nicht irgendwie nur überschrieben werden oder kann ich die Formeln irgendwie "schützen"?
Danke & Gruß
AW: Inhalte gestern löschen und kopieren
22.12.2020 12:42:49
Nepumuk
Hallo,
so ok?
Public Sub DeleteOldDataset()
    Dim lngRow As Long
    Call Columns("BJ:BO").Replace(What:="=", Replacement:=Chr$(160) & "=", LookAt:=xlPart)
    For lngRow = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1
        If Cells(lngRow, 1).Value < Date Then _
            Call Range(Cells(lngRow, 1), Cells(lngRow, 61)).Delete(Shift:=xlShiftUp)
    Next
    Call Columns("BJ:BO").Replace(What:=Chr$(160), Replacement:=vbNullString, LookAt:=xlPart)
End Sub

Gruß
Nepumuk
Anzeige
AW: Inhalte gestern löschen und kopieren
22.12.2020 13:38:45
Steffchen
Das funktioniert auch einwandfrei. Aber nur eine Sache ist noch...
In 3 Spalten befinden sich Matrixformeln (Arrayformeln)!
Sorry, daran habe ich nicht gedacht!
Ist das möglich das diese auch nicht gelöscht werden?
Nach den Ausführen fehlen die geschweiften Klammern!
Danke & Gruß
AW: Inhalte gestern löschen und kopieren
22.12.2020 13:41:44
Nepumuk
Hallo,
lade mal eine Beispielmappe mit ein paar Datensätzen hoch in denen sich die Formeln befinden.
Gruß
Nepumuk
AW: Inhalte gestern löschen und kopieren
22.12.2020 13:59:17
Steffchen
Anbei eine Stark reduzierte Beispieldatei.
Vielleicht geht das auch wenn man nur mit ClearContens arbeitet und dann damit quasi die anderen Spalten in "Ruhe" lässt!
VG
https://www.herber.de/bbs/user/142501.xlsx
Anzeige
AW: Inhalte gestern löschen und kopieren
22.12.2020 16:00:22
Nepumuk
Hallo,
dann so:
Public Sub DeleteOldDataset()
    Dim lngRow As Long
    For lngRow = 2 To Cells(Rows.Count, 1).End(xlUp).Row
        If Cells(lngRow, 1).Value < Date Then _
            Call Range(Cells(lngRow, 1), Cells(lngRow, 61)).ClearContents
    Next
    With ActiveSheet.Sort
        Call .SortFields.Clear
        Call .SortFields.Add(Key:=Range("A1"), SortOn:=xlSortOnValues, _
            Order:=xlAscending, DataOption:=xlSortNormal)
        Call .SetRange(Columns("A:BI"))
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        Call .Apply
    End With
End Sub

Gruß
Nepumuk
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige