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

Ein-Ausblenden zu langsam, Einblenden geht nicht

Ein-Ausblenden zu langsam, Einblenden geht nicht
31.12.2017 11:55:18
Werner
Hallo Liebe Ecxelfreunde,
ich brächte mal wieder ein Tipp von Euch. Spalten Ok.
Die Zeilen(Rows) werden ausgeblendet aber nicht wieder eingeblendet und es ist sehr langsam. siehe unten
LG Werner
Sub AusEinblenden()
Application.ScreenUpdating = False
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
With ws
If .Name  "Jahressummen" And .Name  "Arbeitsfreie Tage" And .Name  "Ergebnis" And . _
Name  "Inhaltsverzeichnis" And .Name  "Stammdaten" And .Name  "Nettoarbeitszeit" Then
.Range("AI:DZ").EntireColumn.Hidden = Not (.Range("AI:DZ").EntireColumn.Hidden)
.Rows("6:6").EntireRow.Hidden = Not Rows("6:6").EntireRow.Hidden = True
.Rows("9:9").EntireRow.Hidden = Not Rows("9:9").EntireRow.Hidden = True
.Rows("12:12").EntireRow.Hidden = Not Rows("12:12").EntireRow.Hidden = True
.Rows("15:15").EntireRow.Hidden = Not Rows("15:15").EntireRow.Hidden = True
.Rows("18:18").EntireRow.Hidden = Not Rows("18:18").EntireRow.Hidden = True
.Rows("21:21").EntireRow.Hidden = Not Rows("21:21").EntireRow.Hidden = True
.Rows("24:24").EntireRow.Hidden = Not Rows("24:24").EntireRow.Hidden = True
.Rows("27:27").EntireRow.Hidden = Not Rows("27:27").EntireRow.Hidden = True
.Rows("30:30").EntireRow.Hidden = Not Rows("30:30").EntireRow.Hidden = True
.Rows("33:33").EntireRow.Hidden = Not Rows("33:33").EntireRow.Hidden = True
.Rows("36:36").EntireRow.Hidden = Not Rows("36:36").EntireRow.Hidden = True
.Rows("38:94").EntireRow.Hidden = Not Rows("38:94").EntireRow.Hidden = True
Application.ScreenUpdating = True
End If
End With
Next ws
End Sub

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

Betreff
Datum
Anwender
Anzeige
AW: Ein-Ausblenden zu langsam, Einblenden geht nicht
31.12.2017 12:15:15
Armin
Hallo,
Die Rows Anweisung ist falsch schreibe .Rows(6)....
Gruß Armin
AW: Ein-Ausblenden zu langsam, Einblenden geht nicht
31.12.2017 12:25:07
Werner
Hallo Namensvetter,
ich hab jetzt zusätzlich mal noch am Anfang die automatische Berechnung aus und am Ende wieder eingeschaltet. Ob das nötig ist musst du selbst mal testen.
Public Sub AusEinblenden()
Dim i As Long, ws As Worksheet
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
For Each ws In ThisWorkbook.Worksheets
With ws
If .Name  "Jahressummen" And .Name  "Arbeitsfreie Tage" And .Name  "Ergebnis" And  _
. _
Name  "Inhaltsverzeichnis" And .Name  "Stammdaten" And .Name  "Nettoarbeitszeit"  _
Then
.Columns("AI:DZ").Hidden = Not .Columns("AI:DZ").Hidden = True
For i = 6 To 36 Step 3
.Rows(i).Hidden = Not .Rows(i).Hidden = True
Next i
.Rows("38:94").Hidden = Not .Rows("38:94").Hidden = True
End If
End With
Next ws
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
Gruß Werner
Anzeige
AW: Ein-Ausblenden zu langsam, Einblenden geht nicht
31.12.2017 12:56:23
Werner
Wow! funktioniert vieleb lieben Dank! GUTEN RUTSCH!
Gerne u.Danke für die Rückmeldung.
31.12.2017 13:00:09
Werner
.....und Rutsch auch gut rein.
Gruß Werner
AW: Ohne doppelte Schleife
31.12.2017 13:26:53
Gerd
Moin
Sub AusEinblenden()
Dim ws As Worksheet
Const rw As String = "6:6,9:9,12:12,15:15,18:18,21:21,24:24,27:27,30:30,33:33,36:36,38:94"
Application.ScreenUpdating = False
Application.EnableEvents = False
Application.Calculation = xlCalculationManual
For Each ws In ThisWorkbook.Worksheets
Select Case ws.Name
Case "Jahressummen", "Arbeitsfreie Tage", "Ergebnis", _
"Inhaltsverzeichnis", "Stammdaten", "Nettoarbeitszeit"
'mach nix
Case Else
ws.Range("AI:DZ").EntireColumn.Hidden = Not ws.Columns("AI").Hidden
ws.Range(rw).EntireRow.Hidden = Not ws.Rows(6).Hidden
End Select
Next ws
Application.Calculation = xlCalculationAutomatic
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub

Guten Rutsch
Gerd
Anzeige
AW: Ein-Ausblenden zu langsam, Einblenden geht nicht
31.12.2017 12:28:30
Werner
Hallo,
ich nochmal. Hier der Code nochmals, weil ich nicht aufgepasst habe und die Forensoftware einen Zeilenumbruch reingehauen hat.
Public Sub AusEinblenden()
Dim i As Long, ws As Worksheet
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
For Each ws In ThisWorkbook.Worksheets
With ws
If .Name  "Jahressummen" And .Name  "Arbeitsfreie Tage" _
And .Name  "Ergebnis" And .Name  "Inhaltsverzeichnis" _
And .Name  "Stammdaten" And .Name  "Nettoarbeitszeit" Then
.Columns("AI:DZ").Hidden = Not .Columns("AI:DZ").Hidden = True
For i = 6 To 36 Step 3
.Rows(i).Hidden = Not .Rows(i).Hidden = True
Next i
.Rows("38:94").Hidden = Not .Rows("38:94").Hidden = True
End If
End With
Next ws
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub
Gruß Werner
Anzeige
AW: Ein-Ausblenden zu langsam, Einblenden geht nicht
31.12.2017 12:40:25
Christian
hallo Werner,
nach erstem Überblick würde ich sagen: "works as designed".
Was mir da so auffällt:
- bei ".Rows("6:6")" etc. muss Excel den String "6:6" erst in einen Range übersetzen. Warum nicht einfach ".Rows(6)" etc. ?
- Wenn du ganze Zeile(n) ansprichst, was soll da noch das ".EntireRow" ?
- im rechten Teil fehlt die Referenz zum Worksheet und Workbook, sprich ohne Punkt vor "Rows" verweist du auf das aktive Tabellenblatt. Ist das so gewollt?
- bei boolschen Ausdrücken wie "a = b = c" macht es Sinn Klammern zu setzen, wie zB. "a = (b = c)". Nicht zuletzt, damit du selbst weißt, was du da tust...
- aber ich vermute aus deiner Frage, dass dieses Konstrukt so eh nicht stimmen kann.
Ohne deine Datei zu kennen schieße ich mal in Blaue mit:
.Rows(6).Hidden = Not .Rows(6).Hidden
etc.
guten Rutsch
Grüße Christian
Anzeige

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige