Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1068to1072
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

Zeilen löschen, wenn "Wert"

Zeilen löschen, wenn "Wert"
29.04.2009 11:54:02
Sandra
Hallo zusammen,
ich brauche dringend Eure Hilfe. Habe im Archiv gesucht, aber nichts passendes gefunden und von VBA habe ich keine Ahnung um etwas umschreiben zukönnen.
Ich muss alle Zeilen löschen, die in Spalte N das Wort "Wert" haben. Das Makro muss ab Zeile 2 bis zur letzten gefüllten Zelle in Spalte A laufen.
Kann mir bitte jemand helfen. Vielen Dank!
LG
Sandra

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeilen löschen, wenn "Wert"
29.04.2009 12:14:29
Tino
Hallo,
teste mal diesen Code.
Es werden zwei Hilfsspalten am Ende der Tabelle verwendet,
diese werden am Schluss wider gelöscht.
Tabellenname musst Du noch anpassen.
Option Explicit

Sub LoescheDaten_Mit_Formel_Hilfe()
Dim Bereich As Range, SortBereich As Range, GesamtBereich As Range
Dim iCalc As Integer

With Application
  iCalc = .Calculation
 .ScreenUpdating = False
 .EnableEvents = False
 .Calculation = xlCalculationManual
    
    With Sheets("Tabelle1") 'Tabellennamen anpassen 
     
      Set Bereich = .Range("N2", .Cells(.Cells(.Rows.Count, 1).End(xlUp).Row, 14))

      If Intersect(Bereich, .Rows(1)) Is Nothing Then
         
         Set Bereich = Bereich.Offset(0, .Columns.Count - Bereich.Column)
         Set SortBereich = Bereich.Offset(0, -1)
         Set GesamtBereich = .Range("A2", .Cells(.Cells(.Rows.Count, 1).End(xlUp).Row, .Columns.Count))
         
         SortBereich.FormulaR1C1 = "=ROW()"
         
         Bereich.FormulaR1C1 = "=IF(RC14=""Wert"",0,"""")"
         
         
         If Application.WorksheetFunction.CountIf(Bereich, 0) > 0 Then
            GesamtBereich.Sort Bereich(1, 1), xlAscending, , , , , , xlNo
             Bereich.SpecialCells(xlCellTypeFormulas, 1).EntireRow.Delete
            GesamtBereich.Sort SortBereich(1, 1), xlAscending, , , , , , xlNo
         End If
          
          'Lösche die Formelspalte am ende der Tabelle 
          .Columns(.Columns.Count).Delete
          .Columns(.Columns.Count - 1).Delete
      End If
    
    End With
 
 .Calculation = iCalc
 .ScreenUpdating = True
 .EnableEvents = True
End With
End Sub


Gruß Tino

Anzeige
AW: Zeilen löschen, wenn "Wert"
29.04.2009 21:04:07
Sandra
Hallo lieber Tino,
Dein Makro klappt prima, verstehen tue ich aber nix. Wenn ich nun eine andere Spalte prüfen will, wo muss ich dann was ändern? Ich hatte hier jetzt in z.B. M2 und row 13 geändert. Aber es passiert nix.
Set Bereich = .Range("N2", .Cells(.Cells(.Rows.Count, 1).End(xlUp).Row, 14))
Vermutlich muss ich an mehren Schrauben drehen. Wenn ja, ginge auch eine einfachere Lösung (vielleicht ohne Formeln)? Ich bin doch ziemlich hilflos. :-(
Danke für die Hilfe!
LG
Sandra
AW: Zeilen löschen, wenn "Wert"
29.04.2009 22:32:42
Tino
Hallo,
hier eine einfachere Variante.
Sub LoescheWerte()
Dim KillRow As Range, Bereich As Range
Dim iCalc As Integer

With Application
 iCalc = .Calculation
 .ScreenUpdating = False
 .EnableEvents = False
 .Calculation = xlCalculationManual
    
    With Sheets("Tabelle1") 'Tabellennamen anpassen 
     'hier den Bereich anpassen (N2 = erste Zelle, 14 = die Spalte 
      Set Bereich = .Range("N2", .Cells(.Cells(.Rows.Count, 1).End(xlUp).Row, 14))
      
      For Each Bereich In Bereich
       If Bereich.Value = "Wert" Then
        If KillRow Is Nothing Then
         Set KillRow = Bereich
        Else
         Set KillRow = Union(Bereich, KillRow)
        End If
       End If
      Next Bereich
      
    End With
 
  If Not KillRow Is Nothing Then KillRow.EntireRow.Delete

 .Calculation = iCalc
 .ScreenUpdating = True
 .EnableEvents = True
End With

End Sub


Gruß Tino

Anzeige
Toll :-)
30.04.2009 20:30:11
Sandra
Hallo Tino,
das ist viel einfacher für mich und klappt prima. Vielen lieben Dank
Schönes Wochenende
Sandra

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige