Excel Makro VBA Zellen vergleichen und bei Übereinstimmung Zeile löschen

1 Antwort

Ribbon Entwicklertools/ Steuerelemente/ Einfügen/ Active-X-Steuerelemente/ Befehlsschaltfläche wählen und auf dem Blatt aufziehen.
Dann Doppelklick auf die Schaltfläche und diesen Code einfügen:

Private Sub CommandButton1_Click()
Dim Zelle As Range
Dim loLetzte As Long

With Sheets("Objektdaten")
    loLetzte = (.Cells(Rows.Count, 2).End(xlUp).Row)
    For Each Zelle In .Range(.Cells(1, 2), .Cells(loLetzte, 2))
        If Zelle.Value = ActiveSheet.Range("C6").Value Then
            Zelle.EntireRow.Delete Shift:=xlUp
        End If
    Next Zelle
End With
End Sub

Klappt es?

Woher ich das weiß:Berufserfahrung – IT-Administrator (i.R.)
IchGebDirGleich 
Fragesteller
 18.06.2014, 22:22

Vielen Dank für deine schnelle Hilfe! Leider klappt es nicht :( Habe die Schaltfläche eingefügt und das Makro hinterlegt. Es wird allerdings nichts gelöscht, wenn ich es teste... Wäre dir sehr dankbar, wenn du es nochmal versuchst. Kann es sein (kenne mich nicht aus, bloß eine Vermutung), dass im Quelltext bei der "If" nicht steht, dass die zu löschende Zeile im anderen Tabellenblatt ist?! (Bei Zelle.EntireRow.Delete)

0
IchGebDirGleich 
Fragesteller
 18.06.2014, 22:30

Es hat doch geklappt, entschuldige meine Dappigkeit :D Wenn ich ein Objekt jetzt über diese Funktion lösche, ist es dann unwiderruflich gelöscht, oder kann man den Löschvorgang rückgängig machen? Tausend Dank!

0
Oubyi, UserMod Light  18.06.2014, 23:14
@IchGebDirGleich

Gern geschehen ☼
Danke fürs Kompliment!
Und JA, die gelöschte Zeile ist unwiderruflich weg.
DAS ist ein Nachteil bei Makros.
Die "Rückgängig"-Option ist weg.
Ich hoffe, das MS das irgendwann mal korrigiert,
aber da sehe ich eher schwarz.

1
Iamiam  19.06.2014, 01:27
@Oubyi, UserMod Light

Dem kann man nur begegnen, indem man die Datei vor dem Auslösen eines so kritischen makros speichert und/oder ggf die Datei unter einem neuen Namen speichert.

2
IchGebDirGleich 
Fragesteller
 19.06.2014, 07:58
@Iamiam

Okay, dann werde ich da mit Vorsicht rangehen. Vielen Dank für eure Hilfe! Ich schätze mal, dass sich bestimmt bald neue VBA-Rätsel für mich ergeben - in dem Fall wende ich mich wieder an euch, weil das so super klappt ;) Beste Grüße

1