Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Zeilen Löschen wenn Datum in Spalte D älter den

Zeilen Löschen wenn Datum in Spalte D älter den
29.09.2014 21:05:34
Vulferin
Ich hab meine Projekt fast fertig bekommen.
1 Sache bekomme ich aber einfach nicht hin.
Spalte D ist meine Datum Spalte
ich möchte gerne das wenn ich ein CommandButton drücker
Alles was 1 MOnat älter ist wie der Aktuelle Monat und in Spalte G Wahr steht
Diese Zeilen sollen gelöscht werden.
Ich hoffe ihr könnt mir da helfen.
Danke euch

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeilen Löschen mit Duplikate entfernen
29.09.2014 21:38:42
Daniel
Hi
So wie immer halt:
1. Per Formel alle Zeilen die gelöscht werden sollen mit einer 0 und alle die stehenbleiben sollen mit der Zeilennummer kennzeichnen.
2. In die erste Zeile der Hilfsspalte (Überschrift) ebenfalls die 0 schreiben
3. Daten - Datentools - Duplikate entfernen auf die Tabelle anwenden mit der Hilfsspalte als Kriterium und ohne Überschrift
4. Hilfsspalte wieder löschen.
Sieht als Code für deinen Button so aus:
With ActiveSheet.UsedRange
With .Columns(.Columns.Count + 1)
.FormulaR1C1 = "=if(and(rc7,rc4<date(year(today()),month(today()),1)),0,row())"
.Cells(1, 1) = 0
.EntireRow.RemoveDuplicates .Column, xlNo
.ClearContents
End With
End With
Gruß Daniel

Anzeige
AW: Zeilen Löschen mit Duplikate entfernen
30.09.2014 19:08:08
Vulferin
irgendwie klappt das nicht
ich verstehe deine formeln auch nicht ganz
RC ist rowcount ?
was ist formular1c1 ?
irgendwie fügt er die spalte ein markiert auch zeilen und löscht sie
aber er schaut nicht in Spalte7 nach Wahr

AW: Zeilen Löschen mit Duplikate entfernen
30.09.2014 19:22:12
Daniel
Hi
FormulaR1C1 heißt, dass die folgende Formel in englischer Sprache geschrieben ist (damit funktioniert das Makro in jeder Länderversion) und die Zellbezüge in R1C1 geschrieben sind.
R1C1 entspricht im Deutschen den Z1S1-Zellbezügen und bedeutet, dass nach dem R die Zeilennummer und nach dem C die Spaltennummer folgt. Folgt keine Nummer, so ist es ein Zellbezug in die gleiche Zeile oder Spalte, in der die Formel steht.
Prinzipell schaut die Formel schon in der Spalte 7 nach, ob da WAHR steht.
du kannst das auch noch mal absichern mit
.FormulaR1C1 = "=if(and(rc7=True,...
aber diese Prüfung ergibt ja auch nur WAHR oder FALSCH als Ergebnis und wenn WAHR oder FALSCH schon direkt als Wert in der Zelle steht, dann kann man diesen auch direkt abfragen.
Anders sieht es aus, wenn WAHR nicht als Wahrheitswert in der Zelle steht, sondern als Text, dann muss die Prüfung natürlich so lauten:
.FormulaR1C1 = "=if(and(rc7=""Wahr"",...
aber was jetzt richtig ist kann ich dir ohne deine Datei und die echten Zellinhalte zu kennen nicht sagen.
Gruß Daniel
ps: Feedback in den anderen Foren, in denen du die Frage ebenfalls gestellt hast nicht vergessen ;-)

Anzeige
AW: Zeilen Löschen mit Duplikate entfernen
01.10.2014 18:46:43
Vulferin
Hi daniel
Irgendiwe klappt das nicht
ich hab das mal mit ""Wahr"" und mit der = true testetet
er löscht mir alle
irgendwie schaut er falsch :)
Kannst du mir nochmal den rest der formel erklären ?
das mit dem Datum ?
Danke dir

AW: Zeilen Löschen mit Duplikate entfernen
01.10.2014 19:02:23
Daniel
die Formel prüft, ob in Spalte G in der gleichen Zeile WAHR steht und ob das Datum in Spalte 4 kleiner ist, als der 1. des aktuellen Monats.
Wenn ja, wird eine 0 in die Zelle geschrieben und wenn nein, die aktuelle Zeilennummer.
Über Duplikate Entfernen kann man dann ganz einfach alle Zellen mit 0 löschen. (die 0, die stehen bleibt, schreibt man sinnvollerweise in die Überschriftenzeile.
Ich würde dir erstmal empfehlen, das ganze ohne Marko von Hand auszuführen, damit du verstehts was passiert.
Beim Umsetzen als Makro (vorallem beim schreiben der Formel) hilft dir dann der Recorder.
Gruß Daniel
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Zeilen Löschen basierend auf Datum und Bedingungen in Excel


Schritt-für-Schritt-Anleitung

Um in Excel alle Zeilen zu löschen, wenn das Datum in Spalte D älter als ein Monat ist und in Spalte G "Wahr" steht, kannst du folgende Schritte ausführen:

  1. Vorbereitung: Stelle sicher, dass deine Daten in einem Excel-Dokument vorliegen und Spalte D die Datumswerte sowie Spalte G die Wahrheitswerte enthält.

  2. Formel in einer Hilfsspalte:

    • Füge eine Hilfsspalte (z. B. in Spalte H) hinzu.
    • Gib in Zelle H1 die folgende Formel ein:
      =WENN(UND(G1=WAHR; D1<DATUM(JAHR(HEUTE()); MONAT(HEUTE())-1; 1)); 0; ZEILE())
    • Ziehe diese Formel nach unten, um sie auf alle relevanten Zeilen anzuwenden.
  3. Duplikate entfernen:

    • Markiere deine Daten und gehe zu Daten > Datentools > Duplikate entfernen.
    • Wähle die Hilfsspalte (Spalte H) als Kriterium aus und deaktiviere die Überschrift.
    • Klicke auf „OK“, um alle Zellen mit 0 zu löschen.
  4. Hilfsspalte entfernen: Lösche die Hilfsspalte, nachdem der Vorgang abgeschlossen ist.


Häufige Fehler und Lösungen

  • Fehler: Die Formel löscht alle Zeilen.

    • Lösung: Überprüfe, ob die Formel korrekt ist und ob die Bedingungen in der Formel (z. B. G1=WAHR) richtig formuliert sind.
  • Fehler: Die Hilfsspalte zeigt falsche Werte.

    • Lösung: Stelle sicher, dass die Datumsformate in Spalte D korrekt sind. Excel muss die Daten als Datum erkennen, um die Berechnungen durchführen zu können.

Alternative Methoden

  • VBA-Makro: Du kannst ein VBA-Makro verwenden, um Zeilen automatisch zu löschen:
    Sub ZeilenLoeschen()
      Dim i As Long
      For i = Cells(Rows.Count, 4).End(xlUp).Row To 1 Step -1
          If Cells(i, 7).Value = True And Cells(i, 4).Value < Date - 30 Then
              Rows(i).Delete
          End If
      Next i
    End Sub

    Dieses Makro überprüft jede Zeile und löscht sie, wenn die Bedingungen erfüllt sind.


Praktische Beispiele

  • Wenn du in Spalte D das Datum „01.09.2023“ hast und in Spalte G steht „Wahr“, wird die Zeile gelöscht, wenn das aktuelle Datum nach dem 01.10.2023 liegt.
  • Du kannst ähnliche Formeln verwenden, um auch andere Bedingungen zu prüfen, z. B. wenn das Datum älter als 30 Tage ist.

Tipps für Profis

  • Daten sichern: Erstelle immer eine Sicherungskopie deiner Daten, bevor du Massenoperationen wie das Löschen von Zeilen durchführst.
  • Automatisierung: Überlege dir, ein VBA-Skript zu verwenden, um den Prozess zu automatisieren, besonders wenn du regelmäßig Daten löschen musst.
  • Filter verwenden: Nutze die Filterfunktion von Excel, um die Zeilen anzuzeigen, die du löschen möchtest, bevor du sie tatsächlich entfernst.

FAQ: Häufige Fragen

1. Frage Wie kann ich alle Zeilen löschen, die einen bestimmten Text enthalten?

Antwort Du kannst die Filterfunktion verwenden, um die Zeilen mit dem spezifischen Text zu filtern und dann die gefilterten Zeilen zu löschen.

2. Frage Was passiert, wenn ich versehentlich die falschen Zeilen lösche?

Antwort Wenn du versehentlich die falschen Zeilen gelöscht hast, kannst du die „Rückgängig“-Funktion (Strg + Z) verwenden, um die Aktion rückgängig zu machen, solange du das Dokument nicht gespeichert hast.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige