Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1084to1088
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
Makro - Zeilen ein- und ausblenden
WalterK
Hallo,
den Code habe ich vor längerer Zeit in einem Forum gefunden und die Bezeichnung "Ein" und "Aus" auf "Privat+Intern Ein" und "Privat+Intern Aus" abgeändert. Noch ist es so, dass über den CommandButton die Zeilen mit den Nichtleeren Zellen in Spalte H aus- oder eingeblendet werden.
Wer kann mir bitte den Code so abändern, dass in Spalte H nicht auf die Nichtleeren Zellen geprüft wird sondern darauf, ob der Text "Privat" oder "Intern" darin steht. Nur diese Zeilen sollen aus- und auch nur diese sollen wieder eingeblendet werden.
Option Explicit

Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
Dim i As Long, hideCol As Integer
hideCol = 8
Select Case Me.CommandButton1.Caption
Case "Privat+Intern Ein", "Privat+Intern Aus"
Case Else
Me.CommandButton1.Caption = "Privat+Intern Aus"
End Select
If Me.CommandButton1.Caption = "Privat+Intern Aus" Then
For i = Cells(Rows.Count, hideCol).End(xlUp).Row To 2 Step -1
If Cells(i, hideCol)  "" Then
Rows(i).Hidden = True
End If
Next i
Me.CommandButton1.Caption = "Privat+Intern Ein"
Else
With Cells
.EntireRow.Hidden = False
End With
With Me.CommandButton1
.Caption = "Privat+Intern Aus"
End With
DoEvents
Application.ScreenUpdating = True
End If
End Sub


Besten Dank im voraus, Walter

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
nur eine Zeile im Code ändern ...
05.07.2009 11:07:55
Matthias
Hallo

Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
Dim i As Long, hideCol As Integer
hideCol = 8
Select Case Me.CommandButton1.Caption
Case "Privat+Intern Ein", "Privat+Intern Aus"
Case Else
Me.CommandButton1.Caption = "Privat+Intern Aus"
End Select
If Me.CommandButton1.Caption = "Privat+Intern Aus" Then
For i = Cells(Rows.Count, hideCol).End(xlUp).Row To 2 Step -1
If Cells(i, hideCol) = "Private" Or Cells(i, hideCol) = "Intern" Then
Rows(i).Hidden = True
End If
Next i
Me.CommandButton1.Caption = "Privat+Intern Ein"
Else
With Cells
.EntireRow.Hidden = False
End With
With Me.CommandButton1
.Caption = "Privat+Intern Aus"
End With
DoEvents
Application.ScreenUpdating = True
End If
End Sub


Gruß Matthias

Anzeige
Perfekt. Besten Dank und Servus, Walter oT
05.07.2009 12:32:43
WalterK
Noch 2 Fragen ...
05.07.2009 13:48:51
WalterK
Hallo,
2 Fragen sind jetzt noch aufgetaucht:
1.) Der Code sollte auch funktionieren wenn der Blattschutz (ohne Kennwort) gesetzt ist.
2.) Wenn die Zeilen ausgeblendet sind, sollten die Zellen K25:L28 verbunden und rot hinterlegt werden und es sollte der Text "Filter ist gesetzt" schwarz und mit Schriftgröße 20 eingetragen werden.
Danke im voraus und noch einen schönen Sonntag, Walter
heir die Antworten ...
05.07.2009 20:52:59
Matthias
Hallo
Setze vorher im Range("K25:L28") die Schriftgröße auf 20 (quasi wenn die Zellen noch leer sind)
Option Explicit

Private Sub CommandButton1_Click()
Dim i As Long, hideCol As Integer
ActiveSheet.Unprotect
Application.ScreenUpdating = False
hideCol = 8
Select Case Me.CommandButton1.Caption
Case "Privat+Intern Ein", "Privat+Intern Aus"
Case Else
Me.CommandButton1.Caption = "Privat+Intern Aus"
End Select
If Me.CommandButton1.Caption = "Privat+Intern Aus" Then
For i = Cells(Rows.Count, hideCol).End(xlUp).Row To 2 Step -1
If Cells(i, hideCol).Text = "Private" Or Cells(i, hideCol).Text = "Intern" Then
Rows(i).Hidden = True
End If
Next i
Me.CommandButton1.Caption = "Privat+Intern Ein"
       With Range("K25:L28")
.Interior.ColorIndex = 3
.Font.ColorIndex = 1
.MergeCells = True
.Value = "Filter gesetzt"
End With
Else
With Cells
.EntireRow.Hidden = False
End With
With Me.CommandButton1
.Caption = "Privat+Intern Aus"
End With
DoEvents
Application.ScreenUpdating = True
       With Range("K25:L28")
.Interior.ColorIndex = xlNone
.Font.ColorIndex = xlAutomatic
.MergeCells = False
.ClearContents
End With
End If
ActiveSheet.Protect
End Sub


Hier ein Beispiel:
https://www.herber.de/bbs/user/62934.xls
Nachtrag:
In der Datei wird
.Font.ColorIndex = xlAutomatic gesetzt. Richtig wäre aber .Font.ColorIndex = 1 (schwarz)
Gruß Matthias

Anzeige
Passt genau!
05.07.2009 21:35:20
WalterK
Hallo Matthias,
besten Dank und Servus, Walter

315 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige