Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1380to1384
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

Ausblenden umkehren ohne Schleife

Ausblenden umkehren ohne Schleife
16.09.2014 14:05:57
Robert
Hallo zusammen,
ich würde gerne in einer Liste mit ausgeblendeten Zeilen alle sichtbaren aus- und alle ausgeblendeten Zeilen einblenden.
Quasi das ganze umkehren.
Gibt es eine einfache Möglichkeit via VBA das zu realisieren ohne eine Schleife über alle Zeilen zu machen und EntireRow.Hidden abzufragen?
Viele Grüße
Robert

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ausblenden umkehren ohne Schleife
16.09.2014 14:34:41
Rudi
Hallo,
das geht nicht ohne Schleife.
Aber den Zustand kannst du einfach umkehren.
R.Hidden = Not R.Hidden
Gruß
Rudi

AW: Ausblenden umkehren ohne Schleife
16.09.2014 14:36:54
Adis
Hallo
auf die Idee bin ich auch noch nicht gekommen. Interessante Aufgabe ...
Hier eine kurze Makro Lösung, wesentlich schneller als For Next Schleife.
Würde mich sehr freuen wenn es klappt. Rückmeldung würde mich freuen.
Dim Adr, TAdr
Sub Zeilen_umgekehrt_Ein_Ausblenden()
On Error GoTo Fehler
'Adresse der ausgeblendeten Zeilen ermitteln
Adr = Cells.SpecialCells(xlCellTypeVisible).Address
'ale Zeilen wieder einblenden
Rows("1:65536").EntireRow.Hidden = False
'Adresse in Teil Adressen zerlegen + ausblenden
Do While InStr(Adr, ",")
TAdr = Left(Adr, InStr(Adr, ",") - 1)
Adr = Right(Adr, Len(Adr) - Len(TAdr) - 1)
Rows(TAdr).EntireRow.Hidden = True
Loop
'letzte Zeilen Adresse ausblenden
Rows(Adr).EntireRow.Hidden = True
Exit Sub
Fehler:  MsgBox "keine ausgelendeten Zeilen gefunden"
End Sub
Gruss Adis

Anzeige
gute Idee, aber ...
16.09.2014 14:49:11
Rudi
Hallo,
...das geht mit viel weniger Aufwand.
Sub aaa()
Dim rVis As Range
Set rVis = Cells.SpecialCells(xlCellTypeVisible)
Rows.Hidden = False
rVis.EntireRow.Hidden = True
End Sub
Gruß
Rudi

AW: Ausblenden umkehren ohne Schleife
16.09.2014 14:38:29
Daniel
Hi
1. merke dir die sichtbaren Zeilen in einer Variablen:
Set rngSichtbar = ActiveSheet.Usedrange.SpecialCells(xlcelltypevisible)
2. blende alle Zellen ein:
Rows.Hidden = False
3. Blende die die Zeilen in der Variablen aus:
rngSichtbar.EntireRow.Hidden = True
Gruß Daniel

AW: Ausblenden umkehren ohne Schleife
16.09.2014 14:45:29
Adis
Hallo Danie
deine Lösung hatte ich nicht gesehen. Da hatten wir wohl beide die gleiche Idee,
über SpecialCells.Visible. Deine Lösung ist sogar noch eleganter. Hut ab ...
Gruss Adis

Anzeige
Vielen Dank, elegante Lösungen
16.09.2014 14:50:54
Robert
Vielen Dank!
Hallo zusammen,
Vielen Dank an euch drei, die Lösung mit dem merken der sichbaren Zellen in einer Rangevariablen gefällt mir sehr gut.
Viele Grüße
Robert

AW: Ausblenden umkehren ohne Schleife
16.09.2014 14:52:21
fcs
Hallo Robert,
es funktioniert mit folgendem Makro.
Ich hab es aber nur mit wenigen Zeilen getestet. Außerdem funktioniert es nicht in Verbindung mit Autofilter und Tabellen-Objekten.
Gruß
Franz
Sub EinAusblendenZeilen()
Dim rngVisible As Range, wks As Worksheet
Dim Zeile_1 As Long, Zeile_L As Long, StatusCalc As Long
On Error GoTo Fehler
Set wks = ActiveSheet
Zeile_1 = 4                           '### anpassen !!!
'Makrobremsen lösen
With Application
.ScreenUpdating = False
.EnableEvents = False
StatusCalc = .Calculation
.Calculation = xlCalculationManual
End With
With wks
If .AutoFilterMode = True Then
MsgBox "Makro funktioniert nicht in Verbindung mit Autofilter", _
vbOKOnly, "Makro: EinAusblendneZeilen"
GoTo Fehler
ElseIf .ListObjects.Count > 0 Then
MsgBox "Makro funktioniert nicht in Verbindung mit Tabellen-Objekten", _
vbOKOnly, "Makro: EinAusblendneZeilen"
GoTo Fehler
End If
With .UsedRange
Zeile_L = .Row + .Rows.Count - 1
End With
Set rngVisible = .Range(.Rows(Zeile_1), _
.Rows(Zeile_L)).SpecialCells(xlCellTypeVisible).EntireRow
.Rows.Hidden = False
rngVisible.Hidden = True
End With
Fehler:
With Err
Select Case .Number
Case 0 ' alles OK
Case 1004
wks.Rows.Hidden = False
Case Else
MsgBox "Fehler-Nr.: " & .Number & vbLf & .Description
End Select
End With
'Makrobremsen zurücksetzen
With Application
.ScreenUpdating = True
.EnableEvents = True
.Calculation = StatusCalc
End With
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige