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

Forumthread: Zellen vergleichen, wenn ungleich, Zellen löchen!

Zellen vergleichen, wenn ungleich, Zellen löchen!
15.04.2005 12:25:51
Miri
Hallo!
Ich hab ein ziemlich großes Problem, das ich mal hier darstellen möchte:
Ich möchte in einer Riesen-Tabelle zwei Zellen vergleichen und wenn diese nicht übereinstimmen, bestimmte Zellen löchen, so dass quasi andere Zellen "nachrücken" bis die beiden erstgennanten Zellen übereinstimmen...das geht sicher nur mit Makros, aber wie?!
In Beispiel soll die Zelle D1 mit A1 verglichen werden, wenn gleich, D2 mit A2 usw.
Wenn sie aber ungleich sind, sollen die Spalten D,E,F so lange gelöscht werden, bis D wieder gleich A ist (hier also 691A, 692A, 693A raus!)
Ist das irgendwie möglich?
Vielen Dank
Michael
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellen vergleichen, wenn ungleich, Zellen löchen!
15.04.2005 15:10:37
ransi
hallo michael
versuch mal:
Option Explicit
Public

Sub t()
Dim zelle As Range
For Each zelle In Range("a1:A100")
If zelle <> zelle.Offset(0, 3) Then
Do Until zelle = zelle.Offset(0, 3) Or zelle.Offset(0, 3) = ""
Range(zelle.Offset(0, 3), zelle.Offset(0, 6)).Delete shift:=xlShiftUp
Loop
End If
Next
End Sub

ransi
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zellen vergleichen und löschen in Excel mit VBA


Schritt-für-Schritt-Anleitung

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

  2. Klicke im Menü auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.

  3. Kopiere den folgenden VBA-Code in das Modul:

    Option Explicit
    Public Sub t()
        Dim zelle As Range
        For Each zelle In Range("A1:A100")
            If zelle <> zelle.Offset(0, 3) Then
                Do Until zelle = zelle.Offset(0, 3) Or zelle.Offset(0, 3) = ""
                    Range(zelle.Offset(0, 3), zelle.Offset(0, 6)).Delete Shift:=xlShiftUp
                Loop
            End If
        Next
    End Sub
  4. Schließe den VBA-Editor und gehe zurück zu Excel.

  5. Drücke ALT + F8, um das Makro auszuführen. Wähle das Makro t aus und klicke auf Ausführen.

Dieser Code vergleicht die Zellwerte in Spalte A mit den entsprechenden Werten in Spalte D. Wenn die Werte ungleich sind, werden die Zellen in den Spalten D, E und F gelöscht, bis die Werte übereinstimmen.


Häufige Fehler und Lösungen

  • Fehler: "Laufzeitfehler 1004"

    • Lösung: Überprüfe, ob der Bereich "A1:A100" tatsächlich Daten enthält und die Zellen nicht leer sind.
  • Fehler: Das Makro funktioniert nicht wie erwartet.

    • Lösung: Stelle sicher, dass du die richtigen Zellen und Bereiche im Code angibst. Überprüfe auch, ob die Werte in den Zellen tatsächlich ungleich sind.

Alternative Methoden

Falls du kein VBA verwenden möchtest, kannst du die WENN-Funktion in Excel nutzen:

  1. Füge eine neue Spalte hinzu (z.B. Spalte G).
  2. Verwende die folgende Formel in Zelle G1:
    =WENN(A1<>D1; "Ungleich"; "Gleich")
  3. Ziehe die Formel nach unten, um sie auf die anderen Zellen anzuwenden.

Diese Methode zeigt dir, ob die Zellwerte gleich oder ungleich sind, ohne Daten zu löschen.


Praktische Beispiele

Angenommen, du hast folgende Werte in Spalte A und D:

A D
691A 691A
692A 693A
693A 694A

Nach Ausführung des Makros werden die Zeilen mit den Werten 692A und 693A in den Spalten D, E und F gelöscht, bis die Werte in Spalte A mit den Werten in Spalte D übereinstimmen.


Tipps für Profis

  • Verwende Option Explicit am Anfang deines VBA-Codes, um sicherzustellen, dass alle Variablen deklariert werden. Dies hilft, Fehler zu vermeiden.
  • Erstelle eine Sicherungskopie deiner Daten, bevor du ein Makro ausführst, um Datenverlust zu vermeiden.
  • Nutze Debug.Print innerhalb deines Codes, um den Status der Variablen während der Ausführung zu überprüfen.

FAQ: Häufige Fragen

1. Kann ich das Makro für andere Zellbereiche verwenden?
Ja, ändere einfach den Bereich in der For Each-Schleife, um andere Zellen zu vergleichen.

2. Was kann ich tun, wenn ich mehrere Spalten vergleichen möchte?
Du kannst den Code anpassen, indem du zusätzliche If-Bedingungen hinzufügst, um weitere Spalten zu berücksichtigen.

3. Ist das Makro auch in Excel Online verfügbar?
VBA-Makros sind nicht in Excel Online verfügbar. Du musst die Desktop-Version von Excel verwenden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige