Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Zeilen ausblenden nach einem oder mehreren Kreteri

Zeilen ausblenden nach einem oder mehreren Kreteri
Joachim
Hallo Excel-Gemeinde
folgender Code funktioniert und er blendet die angewiesenen Zellen aus
Sub Zeilen_ausblenden()
Sheets("EG aktuell").Rows("3:325").Hidden = True
End Sub
Wie muss der Code umgeschrieben werden, wenn z. B alle Zellen ausgeblendet werden sollen, deren Datum in Spalte D kleiner als 01.08.2009 sind. Zeilen 1 + 2 sollen generell stehen bleiben.
Leider reichen meine VBA Kenntnisse nicht, um das selbst zu progrmmieren.
Vielen Dank für eure Hilfe
Gruß Joachim
Anzeige
AW: Zeilen ausblenden nach einem oder mehreren Kreteri
21.11.2009 18:33:28
Josef
Hallo Joachim,
grundsätzlich geht das so. (eine von vielen Möglichkeiten!)
Sub Zeilen_ausblenden()
  Dim lngRow As Long, lngLast As Long
  Dim rngHide As Range
  
  With Sheets("EG aktuell")
    lngLast = Application.Max(3, .Cells(.Rows.Count, 4).End(xlUp).Row)
    .Rows.Hidden = False
    For lngRow = 3 To lngLast
      If .Cells(lngRow, 4).Value < DateSerial(2008, 8, 1) Then
        If rngHide Is Nothing Then
          Set rngHide = .Rows(lngRow)
        Else
          Set rngHide = Union(rngHide, .Rows(lngRow))
        End If
      End If
    Next
  End With
  
  If Not rngHide Is Nothing Then rngHide.EntireRow.Hidden = True
  
  Set rngHide = Nothing
End Sub


Gruß Sepp

Anzeige
AW: Zeilen ausblenden nach einem oder mehreren Kreteri
21.11.2009 18:44:28
Joachim
Danke Josef!!!
Das funktioniert wunderbar, vielen Dank.
Ich will nicht unverschämt sein, aber eine Sache wäre mir noch sehr wichtig, ich glaube aber, dass das nur über eine sog. INputbox geht, die ich noch nie selbst eingerichtet habe.
Zeilen aus den Spalten z.B. A - D den Wert "Auswertung" enthalten, sollen stehen bleiben, alle anderen sollen ausgeblendet werden. Der Suchwert soll halt beliebig sein.
Wenn es keine Mühe macht, wäre ich sehr dank, was ich jetzt auch schon bin.
Toll!
Danke Joachim
Anzeige
AW: Zeilen ausblenden nach einem oder mehreren Kreteri
21.11.2009 19:00:04
Josef
Hallo Joachim,
ist sicher noch Ausbaubar.
Sub Zeilen_ausblenden()
  Dim lngRow As Long, lngLast As Long
  Dim lngDate As Long, strFind As String
  Dim rngHide As Range
  
  lngDate = Application.InputBox("Geben Sie das Datum ein", "Datum", CStr(Date), Type:=1)
  
  If lngDate = 0 Or Not IsDate(CDate(lngDate)) Then
    MsgBox "Abbruch!" & vbLf & "Ungültiges Datum!", vbExclamation, "Fehler"
    Exit Sub
  End If
  
  strFind = InputBox("Geben Sie den Suchbegriff ein", "Suchbegriff", "Auswertung")
  
  If strFind = "" Then
    MsgBox "Abbruch!" & vbLf & "Ungültiger Suchbegriff", vbExclamation, "Fehler"
    Exit Sub
  End If
  
  With Sheets("EG aktuell")
    lngLast = Application.Max(3, .Cells(.Rows.Count, 4).End(xlUp).Row)
    .Rows.Hidden = False
    For lngRow = 3 To lngLast
      If .Cells(lngRow, 4).Value < lngDate Then
        If Application.CountIf(.Range(.Cells(lngRow, 1), .Cells(lngRow, 4)), strFind) = 0 Then
          If rngHide Is Nothing Then
            Set rngHide = .Rows(lngRow)
          Else
            Set rngHide = Union(rngHide, .Rows(lngRow))
          End If
        End If
      End If
    Next
  End With
  
  If Not rngHide Is Nothing Then rngHide.EntireRow.Hidden = True
  
  Set rngHide = Nothing
End Sub


Gruß Sepp

Anzeige
AW: Zeilen ausblenden nach einem oder mehreren Kreteri
21.11.2009 19:13:25
Joachim
Hallo nochmal,
sicher mag der Code noch ausbaubar sein, aber bestimmt nicht durch mich, dafür reicht es bei weitem nicht.
Der Code funktioiert mit der Datumseingabe,
aber was, wenn ich kein Datum eingebe, also individuell suchen will und alles was den Suchbegriff enthält eingeblendet bleiben soll und der Rest ausgeblendet wird.
Das meinte ich mit beliebig. Kannst du dass noch enpflegen, dann habe ich mich auch wirklich genug deiner Dienste bemüht.
Trotzdem ziehe ich meinen Hut, für das erzielte Ergebnis.
Gruß Joachim
Anzeige
AW: Zeilen ausblenden nach einem oder mehreren Kreteri
21.11.2009 19:45:43
Josef
Hallo Joachim,
na dann so.
Sub Zeilen_ausblenden()
  Dim lngRow As Long, lngLast As Long
  Dim strFind As String, lngDate As Long, strS As String
  Dim rngHide As Range
  
  strFind = InputBox("Geben Sie den Suchbegriff oder ein Datum ein", "Suchbegriff", "Auswertung")
  
  If strFind = "" Then
    MsgBox "Abbruch!" & vbLf & "Ungültiger Suchbegriff", vbExclamation, "Fehler"
    Exit Sub
  End If
  
  If IsDate(strFind) Then
    lngDate = CDate(strFind)
    strS = ""
  Else
    lngDate = 99999
    strS = strFind
  End If
  
  With Sheets("EG aktuell")
    lngLast = Application.Max(3, .Cells(.Rows.Count, 4).End(xlUp).Row)
    .Range(.Cells(3, 1), .Cells(lngLast, 1)).EntireRow.Hidden = False
    For lngRow = 3 To lngLast
      If .Cells(lngRow, 4).Value < lngDate Or Not IsDate(.Cells(lngRow, 4).Value) Then
        If Application.CountIf(.Range(.Cells(lngRow, 1), .Cells(lngRow, 4)), strFind) = 0 Then
          If rngHide Is Nothing Then
            Set rngHide = .Rows(lngRow)
          Else
            Set rngHide = Union(rngHide, .Rows(lngRow))
          End If
        End If
      End If
    Next
  End With
  
  If Not rngHide Is Nothing Then rngHide.EntireRow.Hidden = True
  
  Set rngHide = Nothing
End Sub

Gruß Sepp

Anzeige
AW: Danke!!!!
21.11.2009 20:03:43
Joachim
Das ist super!
Vielen, vielen Dank
Joachim
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige