Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zellen abhängig von Datum löschen

Forumthread: Zellen abhängig von Datum löschen

Zellen abhängig von Datum löschen
16.10.2014 11:47:46
Peter Wawoczny

Hallo Liebe Gemeinde.
Ich habe ein Problem, vielleicht kann mir eine von euch helfen.
Ich habe eine Tabelle erstellt wo in Spalte A17 bis A100 ist Datum eingetragen.
In Spalte BCDE 17 bis 100 sind verschiedene Daten eingetragen.
Ich möchte mit einem Makro alle Zeilen in dem Bereich die nicht dem aktuellen Monat entsprächen löschen.
Danke Peter

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Zellen abhängig von Datum löschen
16.10.2014 12:03:53
Hajo_Zi
Hallo Peter,
Option Explicit
Sub n()
Dim I As Long
For I = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
If Month(Cells(I, 1)) <> Month(Date) Then Rows(I).Delete
Next
End Sub

AW: Zellen abhängig von Datum löschen
16.10.2014 12:12:46
Peter Wawoczny
Danke für schnelle Antwort aber es kommt immer die Meldung "Typen unverträglich". Mach ich was falsch?

Anzeige
AW: Zellen abhängig von Datum löschen
16.10.2014 12:21:01
{Boris}
Hi,
dann steht in irgendeiner Zelle keine DATUM sondern z.B. TEXT. Damit kann die Month-Funktion nix anfangen und beschwert sich dann zurecht mit "Typen unverträglich" ;-)
VG, Boris

AW: Zellen abhängig von Datum löschen
16.10.2014 12:32:17
Peter Wawoczny
Der Bereich der gelöscht sein soll fängt an ab Zeile 17 bis 100

AW: Zellen abhängig von Datum löschen
16.10.2014 12:44:52
Hajo_Zi
jetzt auch angepasst an die Zeilen.
Option Explicit
Sub n()
'17 bis 100
Dim I As Long
For I = 100 To 17 Step -1
If IsDate(Cells(I, 1)) Then
If Month(Cells(I, 1)) <> Month(Date) Then Rows(I).Delete
End If
Next
End Sub
Gruß Hajo

Anzeige
AW: Zellen abhängig von Datum löschen
16.10.2014 14:11:01
Peter Wawoczny
vielen vielen dank, funkt bestens. peter

AW: Zellen abhängig von Datum löschen
16.10.2014 12:22:27
Hajo_Zi
stehen vielleicht andere Daten als Daten in Spalte A?
Diese Prüfung hatte ich nicht eingebaut.
Nach For
If Isdate(Cells(I, 1)) Then
und end If vor Next
Gruß Hajo

Anzeige
AW: Zellen abhängig von Datum löschen
16.10.2014 12:13:17
Matthias L
Hallo
Sieht so aus als willst Du nur den Zeilenbereich zwischen A(n):BCDE(n) löschen
Bei mir gehts nur bis XFD, kann es also nicht direkt damit testen.
Probier es mal so:
Sub loeschen()
Dim x&
Application.ScreenUpdating = False
For x = 100 To 17 Step -1
If Month(Cells(x, 1)) <> Month(Date) Then Range(Cells(x, 1), Cells(x, "BCDE")).Delete
Next
End Sub
Allerdings wird da nur der Monat abgefragt, der könnte ja aber auch in einem anderen Jahr sein!
Gruß Matthias

Anzeige
AW: Zellen abhängig von Datum löschen
16.10.2014 12:24:59
Peter Wawoczny
Es kommt immer der gleicher Fehler. ich möchte die kompletten Zeilen/Zellen die nicht dem aktuellen Monat gleich sind entfernen.

Anzeige

Infobox / Tutorial

Zellen abhängig von Datum löschen


Schritt-für-Schritt-Anleitung

Um Zellen in Excel abhängig vom Datum zu löschen, befolge diese Schritte:

  1. Öffne deine Excel-Datei und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.

  3. Füge den folgenden VBA-Code in das Modul ein:

    Option Explicit
    Sub ZellenLoeschen()
       Dim I As Long
       For I = 100 To 17 Step -1
           If IsDate(Cells(I, 1)) Then
               If Month(Cells(I, 1)) <> Month(Date) Then
                   Rows(I).Delete
               End If
           End If
       Next
    End Sub
  4. Schließe den VBA-Editor und kehre zu Excel zurück.

  5. Drücke ALT + F8, wähle ZellenLoeschen aus der Liste und klicke auf Ausführen.

Dieser Code entfernt alle Zeilen von 17 bis 100, deren Datum nicht im aktuellen Monat liegt. Achte darauf, dass die Zellen in Spalte A auch tatsächlich Daten im Datumsformat enthalten.


Häufige Fehler und Lösungen

  • Typen unverträglich: Dieser Fehler tritt auf, wenn eine Zelle in der Datumsspalte Text anstelle eines Datums enthält. Stelle sicher, dass alle Zellen in Spalte A gültige Datumswerte enthalten.

  • Nicht alle Zeilen werden gelöscht: Überprüfe, ob der Bereich, den du löschen möchtest, korrekt angegeben ist. Der Code ist auf die Zeilen 17 bis 100 ausgelegt.

  • Falsches Jahr berücksichtigt: Wenn du auch das Jahr beim Vergleich beachten möchtest, ändere den Code entsprechend:

    If Year(Cells(I, 1)) = Year(Date) And Month(Cells(I, 1)) <> Month(Date) Then

Alternative Methoden

Eine alternative Methode ist die Verwendung von Excel-Filterfunktionen:

  1. Markiere deine Daten.
  2. Gehe zu Daten > Filtern.
  3. Setze einen Filter auf die Datumsspalte und wähle nur die Monate aus, die du behalten möchtest.
  4. Markiere die gefilterten Zeilen und lösche sie.

Diese Methode ermöglicht es dir, das datum aus excel entfernen visuell zu steuern, ohne VBA zu verwenden.


Praktische Beispiele

Angenommen, du hast folgende Daten in Spalte A:

A B
01.01.2023 Daten1
15.02.2023 Daten2
20.03.2023 Daten3

Nach dem Ausführen des Makros im aktuellen Monat (z.B. März) würden die Zeilen mit den Daten vom Januar und Februar gelöscht werden.


Tipps für Profis

  • Nutze Application.ScreenUpdating = False, um die Bildschirmaktualisierung während des Löschvorgangs zu deaktivieren. Das verbessert die Leistung des Makros, besonders bei großen Datenmengen.

  • Mache vor dem Ausführen des Makros eine Sicherheitskopie deiner Daten, um ungewollte Löschvorgänge zu vermeiden.

  • Experimentiere mit dem Code, um ihn an deine spezifischen Bedürfnisse anzupassen. Du kannst z.B. auch zusätzliche Bedingungen hinzufügen, um bestimmte Daten zu schützen.


FAQ: Häufige Fragen

1. Wie kann ich nur bestimmte Zeilen löschen?
Du kannst die Zeilenanzahl im Code anpassen, z.B. von 100 auf 50, um nur die ersten 50 Zeilen zu überprüfen.

2. Was passiert, wenn ich das Makro versehentlich ausführe?
Das Löschen ist irreversibel. Stelle sicher, dass du eine Sicherungskopie deiner Daten machst, bevor du das Makro ausführst.

3. Kann ich das Makro anpassen, um nur bestimmte Datumsformate zu verarbeiten?
Ja, du kannst die IsDate-Überprüfung anpassen, um nur Daten in einem bestimmten Format zu verarbeiten.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige