Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Zeilen per Button ein- oder ausblenden

Zeilen per Button ein- oder ausblenden
12.06.2017 09:16:18
Marco
Hallo nochmal ich habe ein weiteres anliegen.
Ich möchte per toggle button Zeilen ein- oder ausblenden in denen der Wert "Abgeschlossen" in der Spalte G drin steht. Jetzt habe ich unterschiedliche Lösungen im Internet gefunden aber keine passt auf mein Problem. Vielleicht wisst ihr eine Lösung. Danke schon mal an alle.
Viele Grüße Marco
Anzeige

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeilen per Button ein- oder ausblenden
12.06.2017 09:30:41
yummi
Hallo Marco,
nimm doch den Autofilter und wähle Abgeschlossen ab.
Gruß
yummi
AW: Zeilen per Button ein- oder ausblenden
12.06.2017 09:33:17
Marco
Danke Yummi, das würde schon gehen, aber ich möchte mit mehreren Buttons verschiedene Zeilen ein bzw. ausblenden. Das wäre mit einem Toggle Button mittels VBA schneller und praktischer.
AW: Zeilen per Button ein- oder ausblenden
12.06.2017 09:43:56
yummi
Hallo Marco,
dann so:

Sub Zeilen_ausblenden()
Dim letztzeile as long
Application.ScreenUpdating = False
letztezeile = ActiveSheet.Cells(Rows.Count, 7).End(xlUp).Row   'Spalte G = 7
For i = 1 To letztezeile
If Cells(i, 7).Value = "Abgeschlossen" Then
Rows(i).Hidden = True
End If
Next i
Application.ScreenUpdating = True
End Sub
Sub Zeilen_einblenden()
Dim letztzeile as long
Application.ScreenUpdating = False
letztezeile = ActiveSheet.Cells(Rows.Count, 7).End(xlUp).Row   'Spalte G = 7
For i = 1 To letztezeile
Rows(i).Hidden = False
End If
Next i
Application.ScreenUpdating = True
End Sub

Jetzt noch die Makros deinen Button zuweisen und fertig.
Gruß
yummi

Anzeige
AW: Zeilen per Button ein- oder ausblenden
12.06.2017 09:56:30
Marco
Ui ich dachte eigentlich, dass das Programm viel viel kleiner ist. Sorry für die Umstände. Ich bin dir sehr dankbar es funktioniert super =)
AW: Zeilen per Button ein- oder ausblenden
12.06.2017 09:43:08
Bernd
Hi,
probier mal:
Private Sub ToggleButton1_Click()
Dim TB As ToggleButton
Set TB = ToggleButton1
Dim rngRow As Range
Dim cell_ As Range
If TB.Value = True Then
TB.Caption = "Zeilen ausblenden"
Cells.Rows.Hidden = False
Set rngRow = Nothing
Else
TB.Caption = "Zeilen einblenden"
On Error Resume Next
For Each cell_ In Columns(7).SpecialCells(xlCellTypeConstants, 2)
If cell_.Value = "Abgeschlossen" Then
If rngRow Is Nothing Then
Set rngRow = cell_.EntireRow
Else
Set rngRow = Union(rngRow, cell_.EntireRow)
End If
End If
Next
If Not rngRow Is Nothing Then rngRow.EntireRow.Hidden = True
End If
End Sub
MfG Bernd
Anzeige
AW: Zeilen per Button ein- oder ausblenden
12.06.2017 10:09:10
Marco
Hallo Bernd auch an dich vielen Dank dein Code funktioniert auch perfekt. Jetzt habe ich dennoch eine Frage.
Man kann ja Formen in Excel unter einfügen erstellen und denen Makros zuweisen. Ich würde gerne das Makro einer Form zuweisen, da ich die Farbe der Toggle Buttons nur begrenzt verändern kann und bei einer Form habe ich mehrere Möglichkeiten.
Ich möchte nämlich das der Button, beim einblenden der Zeilen grün ist und beim ausblenden der Zeilen innen weiß und der Rand nur grün ist. Geht das?
Anzeige
AW: Zeilen per Button ein- oder ausblenden
12.06.2017 10:19:08
Bernd
Hi,
mal auf die schnelle, Rest kannst ja selbst ein wenig probieren:
Option Explicit
Private Sub ToggleButton1_Click()
With ToggleButton1
.BackColor = IIf(.Value = True, RGB(0, 255, 0), RGB(255, 0, 0))
End With
Dim TB As ToggleButton
Set TB = ToggleButton1
Dim rngRow As Range
Dim cell_ As Range
If TB.Value = True Then
TB.Caption = "Zeilen ausblenden"
Cells.Rows.Hidden = False
Set rngRow = Nothing
Else
TB.Caption = "Zeilen einblenden"
On Error Resume Next
For Each cell_ In Columns(7).SpecialCells(xlCellTypeConstants, 2)
If cell_.Value = "Abgeschlossen" Then
If rngRow Is Nothing Then
Set rngRow = cell_.EntireRow
Else
Set rngRow = Union(rngRow, cell_.EntireRow)
End If
End If
Next
If Not rngRow Is Nothing Then rngRow.EntireRow.Hidden = True
End If
End Sub
MfG Bernd
Anzeige
AW: Zeilen per Button ein- oder ausblenden
12.06.2017 10:44:38
Marco
Danke Bernd es klappt. Aber ich wollte wissen ob es möglich ist dein Makro einem Rechteck zu zuweisen welches beim betätigen die Farbe ändert? Geht das?
AW: Zeilen per Button ein- oder ausblenden
12.06.2017 11:16:41
Bernd
Hi,
nunja, da es eigentlich nicht die Frage war, aber auch ich kein VBA Profi bin, kann ich Dir nicht weiter helfen, sorry.
MfG Bernd
Anzeige
AW: Zeilen per Button ein- oder ausblenden
12.06.2017 11:23:51
Marco
Ach kein Problem du hast mir so gut weitergeholfen. Ich lass es jetzt so wie es ist das passt auch. Vielen Dank nochmal =)
Gerne und Danke für die Rückmeldung - owT
12.06.2017 11:24:45
Bernd
AW: Gerne und Danke für die Rückmeldung - owT
12.06.2017 13:10:53
Marco
Hi Bernd ich habe doch noch eine Frage zum Toggle Button. Ich habe jetzt 3 Toggle Buttons erstellt und den Code dreimal kopiert und dann angepasst.
Beim ersten Button sollen alle Zeilen in denen eine 1 steht ausgeblendet werden beim zweiten alle mit einer 2 und beim dritten alle Zeilen mit einer 3. Das funktioniert. Aber wenn ich alle Zeilen in denen eine 1 steht wieder einblenden möchte werden alle eingeblendet. Bei den anderen verhält es sich genauso.
Könntest du mir dabei vielleicht helfen?
Der Code sieht gerade so aus:
Private Sub ToggleButton21_Click()
With ToggleButton21
.BackColor = IIf(.Value = True, RGB(255, 255, 255), RGB(126, 186, 86))
End With
Dim TB As ToggleButton
Set TB = ToggleButton21
Dim rngRow As Range
Dim cell_ As Range
If TB.Value = True Then
TB.Caption = "ausgeblendet"
Cells.Rows.Hidden = False
Set rngRow = Nothing
Else
TB.Caption = "eingeblendet"
On Error Resume Next
For Each cell_ In Columns(9).SpecialCells(xlCellTypeConstants, 9)
If cell_.Value = 1 Then
If rngRow Is Nothing Then
Set rngRow = cell_.EntireRow
Else
Set rngRow = Union(rngRow, cell_.EntireRow)
End If
End If
Next
If Not rngRow Is Nothing Then rngRow.EntireRow.Hidden = True
End If
ThisWorkbook.Worksheets("Tracking Liste").Cells(1, 1).Select
End Sub

Anzeige
AW: Gerne und Danke für die Rückmeldung - owT
12.06.2017 15:30:11
Marco
Weiß vielleicht jemand anders wie ich nur die Zeilen ein- und ausblenden kann die eine 1 stehen haben? Ich habe jetzt schon so viel versucht aber das gewünschte Ergebnis leider nicht erhalten
AW: Gerne und Danke für die Rückmeldung - owT
12.06.2017 17:08:48
Marco
Hat sich erledigt ich habe meinen Fehler gefunden =)
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zeilen per Button ein- oder ausblenden in Excel


Schritt-für-Schritt-Anleitung

Um in Excel Zeilen per Button ein- oder auszublenden, kannst du VBA (Visual Basic for Applications) verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und erstelle ein neues Arbeitsblatt.

  2. Aktiviere die Entwicklertools:

    • Gehe zu "Datei" > "Optionen" > "Menüband anpassen".
    • Aktiviere das Kontrollkästchen für "Entwicklertools".
  3. Füge einen Toggle Button hinzu:

    • Gehe zu "Entwicklertools" > "Einfügen" > Wähle den Toggle Button aus.
    • Zeichne den Button auf deinem Arbeitsblatt.
  4. Öffne den VBA-Editor:

    • Klicke mit der rechten Maustaste auf den Toggle Button und wähle "Code anzeigen".
  5. Füge den folgenden VBA-Code ein:

Private Sub ToggleButton1_Click()
    Dim TB As ToggleButton
    Set TB = ToggleButton1
    Dim rngRow As Range
    Dim cell_ As Range
    If TB.Value = True Then
        TB.Caption = "Zeilen ausblenden"
        Cells.Rows.Hidden = False
        Set rngRow = Nothing
    Else
        TB.Caption = "Zeilen einblenden"
        On Error Resume Next
        For Each cell_ In Columns(7).SpecialCells(xlCellTypeConstants, 2) ' Spalte G für "Abgeschlossen"
            If cell_.Value = "Abgeschlossen" Then
                If rngRow Is Nothing Then
                    Set rngRow = cell_.EntireRow
                Else
                    Set rngRow = Union(rngRow, cell_.EntireRow)
                End If
            End If
        Next
        If Not rngRow Is Nothing Then rngRow.EntireRow.Hidden = True
    End If
End Sub
  1. Schließe den VBA-Editor und teste den Button.

Häufige Fehler und Lösungen

  • Fehler: Der Toggle Button funktioniert nicht.

    • Lösung: Stelle sicher, dass der Button korrekt mit dem VBA-Code verbunden ist. Klicke mit der rechten Maustaste auf den Button und wähle "Code anzeigen", um sicherzustellen, dass der Code vorhanden ist.
  • Fehler: Zeilen werden nicht richtig ein- oder ausgeblendet.

    • Lösung: Überprüfe, ob die Werte in der angegebenen Spalte (z. B. Spalte G) korrekt sind und den erwarteten Wert "Abgeschlossen" enthalten.

Alternative Methoden

  1. Verwende den Autofilter:

    • Du kannst den Autofilter verwenden, um Zeilen mit bestimmten Werten schnell ein- oder auszublenden. Aktiviere den Autofilter über "Daten" > "Filter" und wähle die gewünschten Optionen.
  2. Makros für Spalten verwenden:

    • Mit einem ähnlichen VBA-Code kannst du auch Spalten per Knopfdruck ein- oder ausblenden. Ändere den Code entsprechend, um die Sichtbarkeit von Spalten anstelle von Zeilen zu steuern.
Sub SpaltenAusblenden()
    Columns("A:B").Hidden = True ' Blendet die Spalten A und B aus
End Sub

Praktische Beispiele

  • Beispiel 1: Blenden von Zeilen ein, die den Wert "1" in Spalte H haben.
If TB.Value = True Then
    For Each cell_ In Columns(8).SpecialCells(xlCellTypeConstants, 9) ' Spalte H
        If cell_.Value = 1 Then
            cell_.EntireRow.Hidden = True
        End If
    Next
End If
  • Beispiel 2: Blenden von Spalten per Button.
Private Sub CommandButton1_Click()
    Columns("C:D").Hidden = Not Columns("C:D").Hidden ' Blendet Spalte C und D ein oder aus
End Sub

Tipps für Profis

  • Anpassung der Button-Farbe: Du kannst die Hintergrundfarbe des Buttons ändern, um visuelles Feedback zu geben, wenn Zeilen ein- oder ausgeblendet werden.
With ToggleButton1
    .BackColor = IIf(.Value = True, RGB(0, 255, 0), RGB(255, 0, 0)) ' Grün für einblenden, Rot für ausblenden
End With
  • Verwendung mehrerer Buttons: Du kannst mehrere Buttons erstellen, um verschiedene Werte zu steuern, indem du den VBA-Code für jeden Button entsprechend anpasst.

FAQ: Häufige Fragen

1. Wie kann ich einen Button erstellen, der Zeilen basierend auf unterschiedlichen Kriterien ein- oder ausblendet? Du kannst für jeden Button einen eigenen VBA-Code schreiben, der auf verschiedene Werte prüft, z. B. 1, 2 oder 3 in einer bestimmten Spalte.

2. Ist es möglich, die Farbe eines Rechtecks bei einem Button-Klick zu ändern? Ja, du kannst die Farbe eines Rechtecks in Excel mit VBA ändern, indem du den entsprechenden Code zur Änderung der Formfarbe hinzufügst.

3. Welches Excel-Format benötige ich, um VBA zu verwenden? Du benötigst Excel in einer Version, die Makros unterstützt, z. B. Excel 2010 oder höher. Stelle sicher, dass du die Datei im .xlsm Format speicherst, um Makros zu aktivieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige