Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.04.2024 18:57:33
17.04.2024 16:56:58
Anzeige
Archiv - Navigation
1688to1692
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
Zellen mit Umschaltbutton ein-/ausblenden
25.04.2019 09:56:38
Michi
Guten Morgen nochmal,
kleine Planänderung.
Ich habe in einem Tabellenabschnitt in gewissen Abständen 50 Zeilen
(13-62, 69-118, 125-174, 181-230, 237-286, 2593-342, 349-398, 405-454)
Nun möchte ich gerne per Knopfdruck leere Zeilen aus den benannten Bereichen ausblenden, wenn Spalte A leer ist.
Bestenfalls mit einem Umschaltbutton zum ein- und ausblenden.
Könntet Ihr mir bitte nochmal helfen?
VG

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellen mit Umschaltbutton ein-/ausblenden
25.04.2019 10:19:39
Nepumuk
Hallo Michi,
teste mal:
Option Explicit
Private Sub ToggleButton1_Click()
Dim avntStart As Variant, avntStop As Variant
Dim ialngIndex As Long
Dim objCell As Range
With ToggleButton1
If .Value Then
avntStart = Array(13, 69, 125, 181, 237, 293, 349, 405)
avntStop = Array(62, 118, 174, 230, 286, 342, 398, 454)
Application.ScreenUpdating = False
For ialngIndex = LBound(avntStart) To UBound(avntStart)
For Each objCell In Range(Cells(avntStart(ialngIndex), 1), _
Cells(avntStop(ialngIndex), 1))
Rows(objCell.Row).Hidden = IsEmpty(objCell.Value)
Next
Next
Application.ScreenUpdating = True
.Caption = "Einblenden"
Else
Rows.Hidden = False
.Caption = "Ausblenden"
End If
End With
End Sub

Gruß
Nepumuk
Anzeige
AW: Zellen mit Umschaltbutton ein-/ausblenden
25.04.2019 10:30:32
Michi
Hallo Nepumuk,
vielen Dank für den Tipp. Funktioniert grundsätzlich auch. Allerdings habe ich mal gestoppt, wie lange er brauch zu durchrechnen. (etwa 2,5 Minuten) Gibt's noch eine schnellere Variante, wo gesagt wird
Range 13-62
Range 69-118
……
VG
AW: Zellen mit Umschaltbutton ein-/ausblenden
25.04.2019 11:06:27
Werner
Hallo Michi,
am Code von Nepumuk liegt das garantiert nicht, da das über Arrays läuft. Da sprechen wir von Microsekunden Abarbeitungszeit.
Das wird wohl an deiner Datei liegen.
Hast du da Unmengen von Array-Formeln oder sonst noch irgendwelche Eventmakros drin?
Versuch mal am Anfang des Makros die automatische Formelbereichnung und die Events auszuschalten
Application.ScreenUpdating = False
Application.EnbableEvents = False
Application.Calculation = xlCalculationManual

Am Ende das Einschalten nicht wieder vergessen:
Application.EnbableEvents = True
Application.Calculation = xlCalculationAutomatic
Gruß Werner
Anzeige
AW: Zellen mit Umschaltbutton ein-/ausblenden
25.04.2019 11:11:59
Michi
Habe das mal so eingefügt. Sollte das falsch sein korrigier mich bitte. Bin etwas blind auf dem Gebiet :) Aktuell gibt er jetzt eine Fehlermeldung.
'Toggle Button 1 blendet leere Zeilen der Räume aus
Private Sub ToggleButton1_Click()
Application.ScreenUpdating = False
Application.EnbableEvents = False
Application.Calculation = xlCalculationManual
Dim avntStart As Variant, avntStop As Variant
Dim ialngIndex As Long
Dim objCell As Range
With ToggleButton1
If .Value Then
avntStart = Array(13, 69, 125, 181, 237, 293, 349, 405)
avntStop = Array(62, 118, 174, 230, 286, 342, 398, 454)
Application.ScreenUpdating = False
For ialngIndex = LBound(avntStart) To UBound(avntStart)
For Each objCell In Range(Cells(avntStart(ialngIndex), 1), _
Cells(avntStop(ialngIndex), 1))
Rows(objCell.Row).Hidden = IsEmpty(objCell.Value)
Next
Next
Application.ScreenUpdating = True
.Caption = "Einblenden"
Else
Rows.Hidden = False
.Caption = "Ausblenden"
End If
End With
Application.EnbableEvents = True
Application.Calculation = xlCalculationAutomatic
End Sub

Anzeige
AW: Zellen mit Umschaltbutton ein-/ausblenden
25.04.2019 11:22:40
Werner
Hallo Michi,
so:
Private Sub ToggleButton1_Click()
Dim avntStart As Variant, avntStop As Variant
Dim ialngIndex As Long, objCell As Range
Application.ScreenUpdating = False
Application.EnableEvents = False
Application.Calculation = xlCalculationManual
With ToggleButton1
If .Value Then
avntStart = Array(13, 69, 125, 181, 237, 293, 349, 405)
avntStop = Array(62, 118, 174, 230, 286, 342, 398, 454)
Application.ScreenUpdating = False
For ialngIndex = LBound(avntStart) To UBound(avntStart)
For Each objCell In Range(Cells(avntStart(ialngIndex), 1), _
Cells(avntStop(ialngIndex), 1))
Rows(objCell.Row).Hidden = IsEmpty(objCell.Value)
Next
Next
Application.ScreenUpdating = True
.Caption = "Einblenden"
Else
Rows.Hidden = False
.Caption = "Ausblenden"
End If
End With
Application.EnableEvents = True
Application.Calculation = xlCalculationAutomatic
End Sub
Gruß Werner
Anzeige
AW: Zellen mit Umschaltbutton ein-/ausblenden
25.04.2019 11:30:15
Michi
Vielen Dank. Das hat geholfen :)
Gerne u. Danke für die Rückmeldung. o.w.T.
25.04.2019 11:34:35
Werner
Lösungsbeispiel
25.04.2019 10:25:36
Beverly
Hi,
nach diesem Prinzip:
Sub EinAus()
If Application.CountA(Range("A13:A62")) 
Für die anderen Bereiche entsprechend.


AW: Lösungsbeispiel
25.04.2019 11:02:55
Michi
Ich habe das so eingetragen:
Private Sub ToggleButton1_Click()
If Application.CountA(Range("A13:A62")) 
so ging es aber leider nicht
AW: Lösungsbeispiel
25.04.2019 12:23:52
Beverly
Mit der Aussage "so ging es nicht" kann man absolut nichts anfangen...
Bei dir fehlt immer das End If zum betreffenden If:
    If Application.CountA(Range("A13:A62")) 


Anzeige
AW: Lösungsbeispiel
25.04.2019 12:30:12
Michi
Dann macht es auch Sinn :)
Vielen Dank

306 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige