Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1108to1112
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
Inhaltsverzeichnis

Löschen wenn Wert nicht enthalten ist

Löschen wenn Wert nicht enthalten ist
Bastian
Hallo zusammen,
ich würde gerne über mehrere Tabellenbätter hinweg bestimmte Zeilen löschen lassen.
Konkret sieht es so aus: Ich habe mehrere Tabellenblätter (z.B. Deluxe, Super, Classic).
Eine Schleife soll diese 3 Blätter durchgehen und nachschauen ob jeweils in Spalte A der Name des Tabellenblatt enthalten ist.
Dabei soll das ganze Blatt mit einer weiteren Schleife durchgangen werden, um so ab der 2. Zeile jede Zeile durchzugehen.
Ist das Blatt durchlaufen, soll die erste Schleife zum nächsten Blatt gehen.
Mein bisheriger Versuch schaut so aus:

Sub loeschen()
Dim i As Long
Application.ScreenUpdating = False
For i = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1
If Cells(i, 1)  "Deluxe" Then Rows(i).Delete
Next i
Application.ScreenUpdating = True
End Sub

Er löscht also innerhalb eines Blattes alles, wenn in Spalte A nicht "Deluxe" vorhanden ist.
Was ich noch nicht hinbekomme, ist die Schleife das er danach in die anderen Blätter "Super" und "Classic" geht und dann dort entsprechend die Zeilen löscht, die eben nicht "Super" bzw. "Classic" enthalten.
Ich muss also das "Deluxe" in meinem Code noch zu einer Variabeln machen...
Das ist mir bewusst, aber ich habe keine vernünftige Lösung dafür ;-)
Hoffe ihr könnt mir helfen - vielen Dank für die Mühe schon vorab!
Viele Grüße
Bastian

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Löschen wenn Wert nicht enthalten ist
15.10.2009 11:12:38
Josef
Hallo Bastian,
probier mal.
' **********************************************************************
' Modul: Modul2 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub deluxe()
  Dim objSh As Worksheet, rngDel As Range
  Dim lngRow As Long, lngLast As Long
  
  For Each objSh In ThisWorkbook.Sheets(Array("Deluxe", "Super", "Classic"))
    With objSh
      lngLast = .Cells(Rows.Count, 1).End(xlUp).Row
      For lngRow = 1 To lngLast
        If .Cells(lngRow, 1) <> .Name Then
          If rngDel Is Nothing Then
            Set rngDel = .Rows(lngRow)
          Else
            Set rngDel = Union(rngDel, .Rows(lngRow))
          End If
        End If
      Next
    End With
    If Not rngDel Is Nothing Then rngDel.Delete
    Set rngDel = Nothing
  Next
  
End Sub

Gruß Sepp

Anzeige
AW: Löschen wenn Wert nicht enthalten ist
15.10.2009 11:31:33
Bastian
Hallo Sepp,
das klappt wunderbar und hilft mir enorm weiter!
Vielen Dank für die schnelle und unkomplizierte Hilfe! :-)
Viele Grüße
Bastian
AW: Löschen wenn Wert nicht enthalten ist
16.10.2009 00:42:51
Daniel
Hi
probier mal das hier:
Sub Löschen()
Dim arrSheets, a
arrSheets = Array("Super", "Classic", "Deluxe")
For Each a In arrSheets
With Sheets(a)
With Range(.Cells(2, 1), .Cells(.Rows.Count, 1).End(xlUp))
.Replace a, True
On Error Resume Next
.SpecialCells(xlCellTypeConstants, 3).EntireRow.Delete
.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
On Error GoTo 0
.Replace True, a
End With
End With
Next
End Sub

das geht aber nur, wenn die Werte fix sind und keine Formeln.
Gruß, Daniel
Anzeige
AW: Löschen wenn Wert nicht enthalten ist
16.10.2009 09:18:14
Bastian
Hallo Daniel,
dann bekomme ich leider einen Laufzeitfehler 1004 angezeigt.
Ich nutze bereits die Lösung von Sepp. Dennoch vielen Dank für die Mühe!
Viele Grüße
Bastian
AW: Löschen wenn Wert nicht enthalten ist
16.10.2009 17:44:54
Daniel
Hi
sorry, da wirst du wohl irgendwo einen Fehler eingebaut haben, bei mir funktioniert mein Makro.
leider kenne ich deine Datei nicht.
gruß, Daniel

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige