Excel2003: Zeilen aus & einblenden (noch ein Versuch)

23/02/2008 - 16:35 von Erich Jung | Report spam
Hallo zusammen,

lasst mich bitte nicht an einer für Euch sicherlich leichten Aufagbe
verzweifeln.

In einem Tabellenblatt möchte ich bestimmte Zeilen ausblenden (hier Zeile
7-11).
Danach sollen weitere Zeilen, abhàngig von einem Zelleninhalt (hier Wert
"TX" in Spalte B) ausgeblendet werden.
Das funktioniert auch soweit ganz gut. Wenn ich aber das Ausblenden der
Zeilen mit dem Wert "TX" wieder
umkehren will, also die Zeilen mit den "TX"-Werten wieder einblenden will
habe ich folgendes Problem:
1. Es werden je nach VBA-Code "alle" Zeilen wieder eingeblendet (auch die
Zeilen 7-11, was ich nicht will) oder
2. Wenn ein "TX"-Wert auch im Zeilenbereich 7-11 vorkommt, dann wird dieser
auch eingeblendet.

Ich habe mal die Makros beigefügt um mein Vorhaben besser zu verdeutlichen.
Bitte um Euren Rat wie man das Problem elegant lösen könnte.

Private Sub ToggleButton1_Click()
Dim s As String, ok As Boolean
If ActiveSheet.Rows("7:7").Hidden Then
s = "Zeilen ausblenden"
ok = False
Else
s = "Zeilen einblenden"
ok = True
End If
Me.ToggleButton1.Caption = s
ActiveSheet.Rows("7:11").Hidden = ok
End Sub

Sub Hide_TX()
Dim rng As Range
Dim iRow As Integer, iRowL As Integer
Application.ScreenUpdating = False
If ActiveSheet.Buttons(Application.Caller).Caption = "Ausblenden TX" Then
iRowL = Cells(Rows.Count, 1).End(xlUp).Row
Range("A1").Value = iRowL
For iRow = 1 To iRowL
If Cells(iRow, 2).Value = "TX" Then
If rng Is Nothing Then
Set rng = Cells(iRow, 2)
Else
Set rng = Application.Union(rng, Cells(iRow, 2))
End If
End If
Next iRow
rng.EntireRow.Hidden = True
ActiveSheet.Buttons(Application.Caller).Caption = "Einblenden TX"
Else

For iRow = 1 To Range("A1").Value
If Cells(iRow, 2) = "TX" Then
Rows(CStr(iRow) & ":" & CStr(iRow)).Hidden = False
End If
Next iRow
' Rows.Hidden = False
ActiveSheet.Buttons(Application.Caller).Caption = "Ausblenden TX"
End If
Application.ScreenUpdating = True
End Sub

PS: Die Makros sind nach einigen Studien aus diesem super Forum entstanden!

Vielen Dank vorab und schönes Wochenende
Gruß Erich
 

Lesen sie die antworten

#1 Wolfgang Habernoll
23/02/2008 - 18:02 | Warnen spam
Hallo Erich

"Erich Jung" schrieb im Newsbeitrag
news:fppegt$49u$01$
Hallo zusammen,

lasst mich bitte nicht an einer für Euch sicherlich leichten Aufagbe
verzweifeln.

In einem Tabellenblatt möchte ich bestimmte Zeilen ausblenden (hier Zeile
7-11).
Danach sollen weitere Zeilen, abhàngig von einem Zelleninhalt (hier Wert
"TX" in Spalte B) ausgeblendet werden.
Das funktioniert auch soweit ganz gut. Wenn ich aber das Ausblenden der
Zeilen mit dem Wert "TX" wieder
umkehren will, also die Zeilen mit den "TX"-Werten wieder einblenden will
habe ich folgendes Problem:
1. Es werden je nach VBA-Code "alle" Zeilen wieder eingeblendet (auch die
Zeilen 7-11, was ich nicht will) oder
2. Wenn ein "TX"-Wert auch im Zeilenbereich 7-11 vorkommt, dann wird dieser
auch eingeblendet.



du solltest hier prüfen ob die Zeilen schon ausgeblendet sind befor du sie in
der Union zusammenfasst. Erweitere die Zeile (sihe unten )


Ich habe mal die Makros beigefügt um mein Vorhaben besser zu verdeutlichen.
Bitte um Euren Rat wie man das Problem elegant lösen könnte.


Private Sub ToggleButton1_Click()
Sub Hide_TX()
Dim rng As Range
Dim iRow As Integer, iRowL As Integer
Application.ScreenUpdating = False
If ActiveSheet.Buttons(Application.Caller).Caption = "Ausblenden TX" Then
iRowL = Cells(Rows.Count, 1).End(xlUp).Row
Range("A1").Value = iRowL
For iRow = 1 To iRowL



'' hier Prüfen ob Hidden oder nicht NEU
If Rows(iRow).Hidden = False And Cells(iRow, 2).Value = "TX" Then

''' If Cells(iRow, 2).Value = "TX" Then '' kann weg




mfG
Wolfgang Habernoll

[ Win XP Home SP-2 , XL2002 ]

Ähnliche fragen