Herbers Excel-Forum - das Archiv

Werte Vergleichen, Zelle löschen

Bild

Betrifft: Werte Vergleichen, Zelle löschen
von: T.Reingruber
Geschrieben am: 24.09.2003 11:47:20
Hallo Leute.

Ich möchte einen Wert, den ich in Tabellenblatt A in Zelle A1 mit einer Tabelle auf Tabellenblatt B, Spalte A1:Axxx vergleichen. Sollte Der Wert schon in der Tabelle sein, muß eine entsprechende Meldung erscheinen, in der eine Abfrage: 'Löschen (ja/Nein)' erscheint.
Wie bekomme ich die Abfrage hin und wie lösche ich dann die ganze betreffende Zeile (Darunterliegende Zeilen sollten dannach nach oben verschoben werden, damit keine Leerzeile entsteht)per VBA?

Im Voraus schon einmal Danke für alle Beiträge.

Bild

Betrifft: AW: Werte Vergleichen, Zelle löschen
von: Bert
Geschrieben am: 24.09.2003 12:21:21
Eine der beliebtesten Fragen, Recherche nutzen.

Bert
Bild

Betrifft: AW: Werte Vergleichen, Zelle löschen
von: WernerB.
Geschrieben am: 24.09.2003 12:23:22
Hallo T. Reingruber,

wie gefällt Dir dieses Makro:

Option Explicit
Sub T_Reingruber()
Dim c As Range
Dim Sb As String
Dim laR As Long, i As Long
Dim Rg As Byte
Application.ScreenUpdating = False
Sb = Sheets(2).Range("A1").Value
If Sb <> "" Then
laR = Sheets(2).Cells(Rows.Count, 1).End(xlUp).Row
For Each c In Sheets(2).Range("A1:A" & laR)
If c.Value = Sb Then
Rg = MsgBox("Löschen (Ja/Nein)", vbYesNo + vbQuestion, "Löschabfrage")
If Rg = 6 Then
c.Rows.Delete Shift:=xlUp
End If
Exit For
End If
Next c
End If
Application.ScreenUpdating = True
End Sub

Viel Erfolg wünscht
WernerB.

P.S.: Das Forum lebt auch von den Rückmeldungen der Fragesteller an die Antworter (siehe Forums-FAQ).
Bild

Betrifft: AW: Werte Vergleichen, Zelle löschen
von: ChrisL
Geschrieben am: 24.09.2003 12:31:19
Hi T.

Und noch eine Lösung...

Option Explicit

Sub Vergleich()
Dim WS1 As Worksheet, WS2 As Worksheet
Dim Antwort As Variant
Dim iZeile As Long
Set WS1 = Worksheets("Tabelle1")
Set WS2 = Worksheets("Tabelle2")
If Application.WorksheetFunction.CountIf(WS2.Range("A1:A" & WS2.Range("A65536").End(xlUp).Row), WS1.Range("A1")) > 0 Then
Antwort = MsgBox("Wert existiert bereits. Soll die Zeile gelöscht werden?", vbYesNo + vbQuestion)
If Antwort = vbYes Then
For iZeile = 1 To WS2.Range("A65536").End(xlUp).Row
If WS2.Cells(iZeile, 1) = WS1.Range("A1") Then Exit For
Next iZeile
WS2.Rows(iZeile).EntireRow.Delete
End If
End If
End Sub


Gruss
Chris
Bild

Betrifft: AW: Werte Vergleichen, Zelle löschen
von: T.Reingruber
Geschrieben am: 24.09.2003 14:27:09
Hi Leute.

Danke für eure Antworten.

Das Ding läuft jetzt. :-D
 Bild