Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1404to1408
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

Macro um Daten von letzter Woche zu löschen

Macro um Daten von letzter Woche zu löschen
29.01.2015 08:47:18
letzter
Hallo,
habe eine grosse Excel Datei die jede Woche geupdatet wird. Möchte gern ein Macro haben das automatisch die Daten der letzten Woche aus der Spalte D im Worksheet "Data" löscht.
Ich weiss, dass man einfach filtern kann und die Daten löschen, würde jedoch gerne wissen wie das per Macro machbar ist.
In der Spalte D werden Daten der letzten 2 Wochen aktualisiert. Die Daten in Spalte D sehen wie folgt aus:
W03
W04
.
.
W52
Das Macro soll dann jeweils die vorherige Woche entfernen. Wenn z.B. W03 und W04 drin ist, dann W03 entfernen.
Kann mir da jemand helfen?
Danke im Voraus

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

Betreff
Datum
Anwender
Anzeige
AW: Macro um Daten von letzter Woche zu löschen
29.01.2015 09:56:32
letzter
Hallo D.,
Ich weiss, dass man einfach filtern kann und die Daten löschen, würde jedoch gerne wissen wie das per Macro machbar ist.
Makrorekorder an, filtern, Löschen, Makrorekorder aus.
Das ist tatsächlich die beste Lösung (wenn der Makrocode etwas überarbeitet wird) da es ohne langwierige Schleifen auskommt und damit auch bei langen Listen sehr schnell ist.
Alternativ könntest du auch in einer Hilfsspalte per Formel einen Fehlerwert erzeugen, wenn die KW zu alt ist. Mit specialcells(fehler) kannst du dann alle Zeilen auf einmal löschen, wiederum ohne Schleife.
Falls du dir Hilfe in Codeform erhofft hast, das wird nichts da ich ja erst eine Datei nachbauen müsste. Ein Upload einer Musterdatei deinerseits (bitte mit der exakt gleichen Struktur!) erhöht die Chance auf einen Codefetzen erheblich.
Grüße,
Klaus M.vdT.

Anzeige
AW: Macro um Daten von letzter Woche zu löschen
29.01.2015 10:03:17
letzter
Alles klar, anbei die Datei vom Recorder:
Sub Macro2()
' Macro2 Macro
Range("U2").Select
ActiveSheet.Range("$A$1:$AK$17036").AutoFilter Field:=20, Criteria1:="W03"
Range("O7").Select
Selection.End(xlToLeft).Select
Selection.End(xlToLeft).Select
Selection.End(xlToLeft).Select
Range("A2").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.EntireRow.Delete
Range("T8422").Select
ActiveSheet.Range("$A$1:$AK$8418").AutoFilter Field:=20
ActiveWindow.SmallScroll Down:=-27
Range("G8400").Select
ActiveWindow.SmallScroll Down:=-12
Calculate
Calculate
End Sub

Anzeige
AW: Macro um Daten von letzter Woche zu löschen
29.01.2015 10:29:02
letzter
Hallo D.,
eigentlich hätte ich gerne eine Musterdatei von dir gehabt. Ich habe ja extra geschrieben dass ich nicht einsehe eine Datei extra nachzubauen. Wie du das missverstehen konntest ist mir absolut nicht klar.
Aber heute bin ich mal nicht so. Hier ist dein Code:

Sub GetRidOfOldWeek()
Const iColFirst As Long = 1
Const iColLast As Long = 37
Const iColKW As Long = 20
Const lRowFirst As Long = 1
Dim lRowLast As Long
With ActiveSheet
'AutoFilter RESET ******************
lRowLast = .Cells(.Rows.Count, iColFirst).End(xlUp).Row
If .AutoFilterMode Then .Cells.AutoFilter 'Turns OFF Autofilter, if any
.Range(.Cells(lRowFirst, iColFirst), .Cells(lRowLast, iColLast)).AutoFilter 'Turns ON  _
Autofilter on given range
'****************** AutoFilter RESET
'kleinstes W herausfinden, umständlich! **************
'Mit einer Musterdatei hätte man einen eleganteren Weg finden können!
Dim r As Range
Dim tFilter As Long
tFilter = 99
For Each r In .Range(.Cells(lRowFirst + 1, iColKW), .Cells(lRowLast, iColKW))
If --Right(r.Value, 2) 
Es wird immer die älteste Kalenderwoche gelöscht. Ich gehe davon aus, dass immer "W" vor den Wochen steht, keine Formelbezugs-Probleme auftreten, es keine Fehler-Werte innerhalb des Filters gibt ... all das hätte ich bei einer Musterdatei gesehen. Jetzt hast du einen Code ohne jegliche Fehlerbehandlung.
Grüße,
Klaus M.vdT.

Anzeige
AW: Macro um Daten von letzter Woche zu löschen
30.01.2015 10:41:35
letzter
Danke

Danke für die Rückmeldung! owT.
30.01.2015 10:45:36
Klaus
.

AW: Macro um Daten von letzter Woche zu löschen
30.01.2015 10:49:33
letzter
Also klappt bestens bisher aber die Datenmenge ist so gross, das bei jedem 2. mal Excel crasht.
Daher hatte ich die Datei auf manuelle Berechnung gestellt. Geht sowas aehnliches auch mit dem Macro

AW: Macro um Daten von letzter Woche zu löschen
30.01.2015 11:38:59
letzter
Hi D.,
kannst du bitte eine Musterdatei hochladen, vielleicht so 10 oder 20 Zeilen? Mit einer eingefügten Hilfsspalte statt des Autofilters kann man vielleicht noch Rechenzeit sparen.
Ansonsten um die üblichen Makrobremsen lösen (nicht nur das automatische berechnen) das hier in ein Modul kopieren:
Public Static Sub GetMoreSpeed(Optional ByVal Modus As Boolean = True)
Dim intCalculation As Integer
If Modus = True Then intCalculation = Application.Calculation
With Application
.ScreenUpdating = Not Modus
.EnableEvents = Not Modus
.Calculation = IIf(Modus = True, xlManual, intCalculation)
.Cursor = IIf(Modus = True, 2, -4143)
End With
End Sub
Und vor / nach dem Makro aufrufen:
Sub GetRidOfOldWeek()
GetMoreSpeed(True)
[...Makro...]
GetMoreSpeed(False)
End SUb
Grüße,
Klaus M.vdT.

Anzeige
AW: Macro um Daten von letzter Woche zu löschen
30.01.2015 13:11:21
letzter
Wow, vielen dank dir, klappt 1a mit dem Speedboost.
Schönes Wochenende und danke für die Hilfe, trotz des mauen Inputs von mir.

Danke für die Rückmeldung! owT.
30.01.2015 13:39:42
Klaus
.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige