Excel - Makro, löschen von nicht benötigten Zeilen

Dieses Thema Excel - Makro, löschen von nicht benötigten Zeilen im Forum "Microsoft Office Suite" wurde erstellt von brandnewman, 29. Juni 2005.

Thema: Excel - Makro, löschen von nicht benötigten Zeilen Hallo Excel-Freaks, ich habe folgendes Problem. Eine Excel-Rechnungstabelle, die verschiedene Rechnungspositionen...

  1. Hallo Excel-Freaks,

    ich habe folgendes Problem. Eine Excel-Rechnungstabelle, die verschiedene Rechnungspositionen beinhaltet. Nun möchte ich aber, dass nur die Positionen auf dem Ausdruck erscheinen, die auch tatsächlich gebraucht wurden. Sprich alles das was nicht gebraucht wurde soll rausgeschmissen werden. Bisher habe ich nur Makros gesehen, mit denen man komplette Zeilen oder Spalten löschen kann. Ich möchte aber - wie bereits beschrieben - nur einen bestimmten Zellbereich, der quasi keine Stückzahl enthält löschen. Wie geht so was?
     
  2. Hallo brandnewman,

    beschreib mal deine Tabelle etwas näher.

    In welchem Bereich stehen deine Stückzahlen ? Ist der bereich nach unten flexibel?

    Wenn der Makro z.B. von einer bestimmten Zeile an in einer Spalte (hier z.B. Stückzahl) suchen soll, welches Kriterium sagt im, daß die Suche zu Ende ist?

    Gruß Matjes :)
     
  3. Hallo Matjes,

    konkret geht es um folgendes:
    in den Zeilen 24 - 38 stehen einzelne Positionen.
    Wenn nun bei einer Position keine Stückzahl (die Stückzahl steht in der Spalte C) eingetragen wird, dann soll das Makro diese Zeile(n) löschen.

    Nach unten ist der Bereich nicht wirklich flexibel, da ja dann noch Daten wie Gesamtsumme, Zahlungsziel etc. folgen müssen. Das Kriterium, dass die Suche zu Ende ist soll quasi die Zeilennummer (38) sein. Geht so etwas?
     
  4. Hallo brandnewman,

    die Lösung könnte wie folgt aussehen.

    Gruß Matjes :)
    Code:
    Sub ZeilenMitLeererStueckzahlLoeschen()
    
     ->Bereich der untersucht wird
      Const c_SP = 3->entspricht C
      Const c_Zeile_Anfang = 24
      Const c_Zeile_Ende = 38
    
      Dim ws As Worksheet, z As Long
    
      Set ws = ActiveSheet
      
     ->für alle Zeile des Überwachungsbereiches
     ->vom Ende zum Anfang
      For z = c_Zeile_Ende To c_Zeile_Anfang Step -1
       ->Zelle Stückzahl leer ?
        If ws.Cells(z, c_SP).Value =  Then
         ->Zeile Löschen
          ws.Rows(z).Delete
        End If
      Next
      
      Set ws = Nothing
    End Sub
     
  5. Hallo Matjes,

    wow - super - funktioniert auf Anhieb - da sag ich nur chapeau!

    Aber da werd ich doch auch gleich übermütig - gibt es auch eine Möglichkeit für ein Makro um den letzten Filter
    -ZeilenMitLeererStueckzahlLoeschen()- wieder aufzuheben, sprich quasi das Ausgangssheet (Rücksprung) wieder herzustellen? Könnte ja sein, dass man sich mal vertippt hat.
     
  6. Hallo brandnewman,

    man könnte das noch dreiteilen:

    a) einen Makro zum Ausblenden der Zeilen ohne Stückzahl
    b) einen Makro zum Einblenden aller Zeilen
    c) einen Makro zum Löschen der Zeilen ohne Stückzahl

    Das sähe dann so aus:

    Gruß matjes :)
    Code:
    Option Explicit
      
     ->Bereich der untersucht wird
      Const c_SP_Stueckzahl = 3->entspricht C
      Const c_Zeile_Anfang = 24
      Const c_Zeile_Ende = 38
    '****************************************************************
    Sub ZeilenMitLeererStueckzahl_Ausblenden()
    
      Dim z As Long
     ->für alle Zeile des Überwachungsbereiches vom Ende zum Anfang
      For z = c_Zeile_Ende To c_Zeile_Anfang Step -1
       ->Zelle Stückzahl leer ? -> Zeile ausblenden
        If ActiveSheet.Cells(z, c_SP_Stueckzahl).Value =  Then
          ActiveSheet.Rows(z).Hidden = True
        End If
      Next
    End Sub
    '****************************************************************
    Sub ZeilenMitLeererStueckzahl_Einblenden()
    
     ->alle Zeile des Überwachungsbereiches einblenden
      ActiveSheet.Rows(c_Zeile_Anfang & : & c_Zeile_Ende).Hidden = False
    End Sub
    '****************************************************************
    Sub ZeilenMitLeererStueckzahl_Loeschen()
    
      Dim z As Long
     ->für alle Zeile des Überwachungsbereiches vom Ende zum Anfang
      For z = c_Zeile_Ende To c_Zeile_Anfang Step -1
       ->Zelle Stückzahl leer ? -> Zeile löschen
        If ActiveSheet.Cells(z, c_SP_Stueckzahl).Value =  Then
          ActiveSheet.Rows(z).Delete
        End If
      Next
    End Sub
     
Die Seite wird geladen...

Excel - Makro, löschen von nicht benötigten Zeilen - Ähnliche Themen

Forum Datum
Excel VBA Makro zum suchen eines Textes und anschließend einen Breich zu kopieren Microsoft Office Suite 22. Jan. 2015
Excel VBA Makro zum suchen und markieren von Zeilen die ein bestimmtes Wort enthalten Microsoft Office Suite 16. Juni 2014
Excel: Makro ASCII verschieben Windows XP Forum 8. Nov. 2013
Makros und anderes - Excel Microsoft Office Suite 15. März 2013
Excel Sprungmarke mitten in ein anderes Makro Windows XP Forum 15. März 2012