Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1632to1636
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

Zeilen löschen
15.07.2018 10:03:21
Heinz
Guten morgen, im Forum
Im unteren Code lösche ich Zeilen wo der Wert "LASK und "Linzer ASK" nicht vorkommt.
Nur funktioniert der Code nur für Spalte D , ich möchte aber auch das der der Code auf Spalte C angewendet wird.
Also nur löschen wenn in Spalte C+D die Werte nicht vorkommen.
Danke für eure Hilfe, Heinz
  • Option Explicit
    Sub Zeilelöschen()
    Dim zeile As Long
    Dim zeilemax As Long
    Application.ScreenUpdating = False
    With Worksheets("Tabelle1")
    zeilemax = .Cells(Rows.Count, 1).End(xlUp).Row
    For zeile = zeilemax To 3 Step -1
    If .Cells(zeile, 3).Value Like "LASK*" Or _
    .Cells(zeile, 3).Value Like "Linzer ASK*" Then
    End If
    If .Cells(zeile, 4).Value Like "LASK*" Or _
    .Cells(zeile, 4).Value Like "Linzer ASK*" Then
    Else
    .Rows(zeile).Delete
    End If
    Next zeile
    End With
    Application.ScreenUpdating = True
    End Sub
    


  • 11
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: Zeilen löschen
    15.07.2018 10:07:39
    Hajo_Zi
    
    Option Explicit
    Sub Zeilel?schen()
    Dim zeile As Long
    Dim zeilemax As Long
    Application.ScreenUpdating = False
    With Worksheets("Tabelle1")
    zeilemax = .Cells(Rows.Count, 1).End(xlUp).Row
    For zeile = zeilemax To 3 Step -1
    If .Cells(zeile, 4).Value Like "LASK*" Or _
    .Cells(zeile, 4).Value Like "Linzer ASK*" Or _
    .Cells(zeile, 3).Value Like "LASK*" Or _
    .Cells(zeile, 3).Value Like "Linzer ASK*" Then
    Else
    .Rows(zeile).Delete
    End If
    Next zeile
    End With
    Application.ScreenUpdating = True
    End Sub
    

    Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
    Anzeige
    AW: Zeilen löschen
    15.07.2018 10:12:41
    Heinz
    Hallo Hajo
    Perfekt !!!
    Recht herzlichen Dank
    Schöne Grüsse, Heinz
    AW: Zeilen löschen
    15.07.2018 10:11:49
    Sepp
    Hallo Hein z,
    probier mal.
    Sub Zeilelöschen()
      Dim rngDelete As Range
      Dim zeile As Long, zeilemax As Long
    
      On Error GoTo ErrorHandler
      Application.ScreenUpdating = False
      
      With Worksheets("Tabelle1")
        zeilemax = .Cells(Rows.Count, 1).End(xlUp).Row
        For zeile = 3 To zeilemax
          If Not .Cells(zeile, 3).Value Like "L*ASK*" And Not .Cells(zeile, 4).Value Like "L*ASK*" Then
            If rngDelete Is Nothing Then
              Set rngDelete = .Cells(zeile, 3).EntireRow
            Else
              Set rngDelete = Union(rngDelete, .Cells(zeile, 3).EntireRow)
            End If
          End If
        Next zeile
      End With
      
      If Not rngDelete Is Nothing Then rngDelete.Delete
      
    ErrorHandler:
      Application.ScreenUpdating = True
      
      Set rngDelete = Nothing
    End Sub

    VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

    Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0


     ABCDEF
    1Gruß Sepp
    2
    3

    Anzeige
    AW: Zeilen löschen
    15.07.2018 10:31:44
    Heinz
    Hallo Sepp
    Auch dein Code funktioniert Perfekt !!
    Wieder einmal ein recht herzliches Danke
    Schöne Grüsse, Heinz
    AW: Zeilen löschen
    15.07.2018 12:12:39
    Heinz
    Hallo Hajo & Sepp
    Nach einigen Test läuft das Makro von Euch nicht mehr wie am Anfang.
    Habe nichts verändert.
    Könntet ihr bitte einen Blick darauf werfen, wo der Fehler liegt?
    Danke, Heinz
    https://www.herber.de/bbs/user/122685.xlsm
    AW: Zeilen löschen
    15.07.2018 12:36:45
    Sepp
    Hallo Heinz,
    "Habe nichts verändert."
    Doch! In Spalte A stehen jetzt keine Werte, da wird aber die letzte Zeile ermittelt! Außerdem hieß die Tabelle vorher 'Tabelle1', jetzt heißt sie 'LASK'!
    Sub Zeilelöschen_Sepp()
      Dim rngDelete As Range
      Dim zeile As Long, zeilemax As Long
    
      On Error GoTo ErrorHandler
      Application.ScreenUpdating = False
      
      With Worksheets("LASK")
        zeilemax = .Cells(Rows.Count, 3).End(xlUp).Row
        For zeile = 3 To zeilemax
          If Not .Cells(zeile, 3).Value & .Cells(zeile, 4).Value Like "*L*ASK*" Then
            If rngDelete Is Nothing Then
              Set rngDelete = .Cells(zeile, 3).EntireRow
            Else
              Set rngDelete = Union(rngDelete, .Cells(zeile, 3).EntireRow)
            End If
          End If
        Next zeile
      End With
      
      If Not rngDelete Is Nothing Then rngDelete.Select
      
    ErrorHandler:
      Application.ScreenUpdating = True
      
      Set rngDelete = Nothing
    End Sub

    VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

    Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0


     ABCDEF
    1Gruß Sepp
    2
    3

    Anzeige
    Nachtrag
    15.07.2018 12:38:15
    Sepp
    Hallo nochmal,
    rngDelete.Select
    

    musst du natürlich wieder zu
    rngDelete.Delete
    

    machen, das war nur zum testen.
     ABCDEF
    1Gruß Sepp
    2
    3

    Anzeige
    AW: Zeilen löschen
    15.07.2018 12:43:22
    Heinz
    Hallo Sepp
    Ja Tabellen Blatt Name habe ich geändert,
    Das mit den Werten in Spalte A war mir nicht bewusst.
    Recht herzlichen Dank.
    Schöne Grüsse, Heinz
    Noch etwas aufgefallen!
    15.07.2018 12:49:09
    Sepp
    Hallo Heinz,
    dein Code beginnt ab Zeile 3 die zu löschenden Daten zu ermitteln, deine Daten beginnen aber in Zeile 2!
     ABCDEF
    1Gruß Sepp
    2
    3

    Anzeige
    AW: Zeilen löschen
    15.07.2018 17:09:32
    snb
    Oder in VBA:
    Sub M_snb()
    [C1:C2000] = [if(iserror(find("dd",C1:C2000&D1:D2000)),"",C1:C2000)]
    [C1:C2000].SpecialCells(4).EntireRow.Delete
    End Sub
    

    AW: Zeilen löschen
    15.07.2018 17:57:58
    Heinz
    Hallo Sepp
    Nochmals recht herzlichen Dank
    SG, Heinz

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige