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

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige