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

Forumthread: Zeilen ausblenden wenn farbig mit VBA

Zeilen ausblenden wenn farbig mit VBA
13.03.2006 16:38:00
MathiasW
Hallo Excel Freunde
hab da noch ein 2tes Problem,
ich in meiner Excel Datei sind Einträge von Zeile
3 bis 3000.
Jetzt habe ich einen ToggleButton1 eingefügt und möchte erreichen,
dass beim betätigen alle Zeilen die nicht mit der standard Farbe
(weiss) hinterlegt sind ausgeblendet werden und beim erneuten betätigen
alle Zeilen wieder sichtbar werden.
Könnt ihr mir da weiterhelfen?
vielen Dank im vorraus
Mathias
PS: Es würde auch schon reichen wenn der Bereich A3:A3000
geprüft wird ob eine Zelle einen anderen Farbindex hat.
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeilen ausblenden wenn farbig mit VBA
13.03.2006 18:36:18
Selma
Hallo Matthias
hab das hier mal ausprobiert. Hoffe, es trifft deine Vorstellung.
Die Variable "pressed" ist bei mir standardmäßig false, wenn bei dir nötig kannst du mit Workbook_open auch manuell pressed auf False setzen...
Gruß,
Selma
---------
Option Explicit
Public pressed As Boolean
Sub hide()
Dim i As Integer
For i = 3 To 3000
If (Sheet1.Cells(i, 1).Interior.ColorIndex > 0) Then
Sheet1.Cells(i, 1).EntireRow.Hidden = True
End If
Next i
End Sub
Sub show()
Sheet1.Range("A3:A3000").EntireRow.Hidden = False
End Sub

Private Sub ToggleButton_Click()
If pressed = False Then
Call hide
pressed = True
Else
Call show
pressed = False
End If
End Sub

Anzeige
AW: Zeilen ausblenden wenn farbig mit VBA
13.03.2006 18:39:45
Uli
Hallo Mathias,
oder vielleich so:

Private Sub ToggleButton1_Click()
Application.ScreenUpdating = False
If ToggleButton1.Value = True Then
For i = 3 To 3000
If Cells(i, 1).Interior.ColorIndex = xlNone = False Then
Rows(i).Select
Selection.EntireRow.Hidden = True
End If
Next i
Else
Range("A1").Resize(3000, 1).Select
Selection.EntireRow.Hidden = False
End If
End Sub

viele Grüße
Uli
Anzeige
AW: Zeilen ausblenden wenn farbig mit VBA
13.03.2006 18:41:59
ChrisL
Hallo
Kleine Anmerkung der Vollständigkeit wegen. Mittels bedingter Formatierung erzeugte Farben haben keinen Index der sich über VBA abfragen liesse. In solchen Fällen ist die eigentlich Bedingung abzufragen.
Gruss
Chris
;
Anzeige
Anzeige

Infobox / Tutorial

Zeilen in Excel ausblenden, wenn farbig, mit VBA


Schritt-für-Schritt-Anleitung

Um Zeilen in Excel auszublenden, die farbig hinterlegt sind, kannst Du VBA (Visual Basic for Applications) verwenden. Folge diesen Schritten:

  1. Öffne den Visual Basic-Editor: Drücke ALT + F11, um den Editor zu starten.

  2. Einfügen eines Moduls: Klicke mit der rechten Maustaste auf „VBAProject (DeineDatei.xlsx)“ und wähle Einfügen > Modul.

  3. Code einfügen: Kopiere den folgenden VBA-Code in das Modul:

    Option Explicit
    Public pressed As Boolean
    
    Sub hide()
        Dim i As Integer
        For i = 3 To 3000
            If (Sheet1.Cells(i, 1).Interior.ColorIndex > 0) Then
                Sheet1.Cells(i, 1).EntireRow.Hidden = True
            End If
        Next i
    End Sub
    
    Sub show()
        Sheet1.Range("A3:A3000").EntireRow.Hidden = False
    End Sub
    
    Private Sub ToggleButton_Click()
        If pressed = False Then
            Call hide
            pressed = True
        Else
            Call show
            pressed = False
        End If
    End Sub
  4. ToggleButton hinzufügen: Füge einen ToggleButton aus der Entwicklertools-Leiste hinzu.

  5. ToggleButton mit dem Code verknüpfen: Klicke mit der rechten Maustaste auf den ToggleButton und wähle Code anzeigen, um sicherzustellen, dass die Funktion ToggleButton_Click verknüpft ist.


Häufige Fehler und Lösungen

  • Fehler: ToggleButton funktioniert nicht
    Lösung: Stelle sicher, dass der ToggleButton korrekt mit der ToggleButton_Click-Prozedur verknüpft ist.

  • Fehler: Zeilen werden nicht ausgeblendet
    Lösung: Überprüfe, ob die Zellen im angegebenen Bereich (A3:A3000) tatsächlich farbig hinterlegt sind und dass der Farbindex größer als 0 ist.


Alternative Methoden

Falls Du keine VBA-Lösungen verwenden möchtest, kannst Du auch die bedingte Formatierung nutzen, um die Sichtbarkeit von Zeilen zu steuern. Beachte jedoch, dass Farben, die durch bedingte Formatierung erzeugt werden, keinen Farbindex besitzen, der über VBA abgerufen werden kann.

  • Bedingte Formatierung anwenden: Wähle den Bereich A3:A3000 aus, gehe zu Start > Bedingte Formatierung und definiere eine Regel.

Praktische Beispiele

Hier ist ein Beispiel, wie Du den ToggleButton anpassen kannst, um nur farbige Zeilen auszublenden:

Private Sub ToggleButton1_Click()
    Application.ScreenUpdating = False
    If ToggleButton1.Value = True Then
        For i = 3 To 3000
            If Cells(i, 1).Interior.ColorIndex <> xlNone Then
                Rows(i).EntireRow.Hidden = True
            End If
        Next i
    Else
        Range("A3:A3000").EntireRow.Hidden = False
    End If
    Application.ScreenUpdating = True
End Sub

Tipps für Profis

  • Optimierung: Verwende Application.ScreenUpdating = False, um die Leistung bei umfangreichen Datensätzen zu verbessern.
  • Fehlerbehandlung: Implementiere On Error Resume Next, um den Code robuster zu machen.

FAQ: Häufige Fragen

1. Wie kann ich die Sichtbarkeit der Zeilen anpassen?
Du kannst den VBA-Code anpassen, um anstelle des gesamten Bereichs nur spezifische Zeilen auszublenden.

2. Funktioniert das in jeder Excel-Version?
Der bereitgestellte VBA-Code sollte in den meisten Excel-Versionen funktionieren, die VBA unterstützen (Excel 2010 und höher empfohlen).

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige