Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
920to924
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
920to924
920to924
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zeilen löschen wenn...

Zeilen löschen wenn...
27.10.2007 19:23:07
Andre´
Hallo alle zusammen,
ich habe zwei Tabellenblätter wobei ich im Tabelle1 mit Hilfe eines Makros folgende Zeilen löschen möchte, wenn der selbe Wert in Tabelle2 SpalteB enthalten ist der auch in Tabelle1 SpalteB vorkommt. Groß und Kleinschreibung sollte beachtet werden.
Als Beispiel habe ich folgende Datei angehängt, https://www.herber.de/bbs/user/47179.xls
wo die Zeilen die gelb markiert sind entfernt werden sollen. Die Zeilen sollen nach oben geschoben werden sodass keine Leerzeilen entstehen.
Ich hoffe mir kann jemand helfen
Danke im voraus!
MFG Andre

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeilen löschen wenn...
27.10.2007 19:57:18
Josef
Hallo André,
probier mal.
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub ZeilenLoeschen()
Dim rng As Range, rngF As Range, rngD As Range

With Sheets("Tabelle1")
    
    For Each rng In .Range("B1:B" & .Cells(Rows.Count, 2).End(xlUp).Row)
        
        Set rngF = Sheets("Tabelle2").Columns(2).Find(What:=rng, LookAt:=xlWhole, MatchCase:=True)
        
        If Not rngF Is Nothing Then
            
            If rngD Is Nothing Then
                Set rngD = rng.EntireRow
            Else
                Set rngD = Union(rngD, rng.EntireRow)
            End If
            
        End If
        
        rng = Sheets("Tabelle1").Columns(2).FindNext(rng)
        
    Next
    
End With

If Not rngD Is Nothing Then rngD.Delete

Set rng = Nothing
Set rngF = Nothing
Set rngD = Nothing
End Sub

Gruß Sepp

Anzeige
AW: Zeilen löschen wenn...
27.10.2007 20:33:30
Andre´
Hallo Sepp,
danke für den Tipp funktioniert prima.
MFG Andre

AW: Zeilen löschen wenn...
27.10.2007 21:29:53
Gerd
Halo Andre,
oder so.

Sub Zeilen_mit_Vergleichsdoppel_löschen()
Dim lngZeile As Long, lngCheck As Long, intIndex As Long, arr()
Dim WsDel As Worksheet, WsCheck As Worksheet, rngSuche As Range
Set WsDel = ThisWorkbook.Worksheets("Tabelle1")
Set WsCheck = ThisWorkbook.Worksheets("Tabelle2")
Set rngSuche = WsCheck.Range(WsCheck.Cells(1, 2), WsCheck.Cells(Rows.Count, 2).End(xlUp))
intIndex = -1
For lngZeile = 1 To WsDel.Cells(Rows.Count, 2).End(xlUp).Row
On Error Resume Next
lngCheck = rngSuche.Find(WsDel.Cells(lngZeile, 2).Value, lookat:=xlWhole, _
LookIn:=xlValues, MatchCase:=True).Row
On Error GoTo 0
If lngCheck > 0 Then
intIndex = intIndex + 1
ReDim Preserve arr(intIndex)
arr(intIndex) = WsDel.Rows(lngZeile).Address
End If
lngCheck = 0
Next
If intIndex > -1 Then WsDel.Range(Join(arr, ",")).EntireRow.Delete
End Sub


Gruß Gerd

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige