Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Zeilen per VBA einblenden/ausblenden

Zeilen per VBA einblenden/ausblenden
24.06.2014 08:28:17
Markus
Hallo,
ich habe hier aus dem Forum einen Codesnippsel genommen und das Makro erweitert.
Hier wird per Dropdown etwas ausgewählt. Abhängig der Zahl werden Zeilen eingeblendet und ander ausgeblendet:
Sub Makro10()
Dim i As Double
For i = 10 To 11
If Cells(4, 6) = 1 Then
Rows(i).Hidden = False
Else
Rows(i).Hidden = True
End If
Next
For i = 12 To 13
If Cells(4, 6) = 2 Then
Rows(i).Hidden = False
Else
Rows(i).Hidden = True
End If
Next
For i = 14 To 15
If Cells(4, 6) = 3 Then
Rows(i).Hidden = False
Else
Rows(i).Hidden = True
End If
Next
End Sub
Nun möchte ich gerne das Ganze etwas Flexibler gestalten. Und zwar soll, wenn z.B. per Dropdown "Test 1" ausgewählt wird (Zahl 1), sollen alle Zeilen eingeplendet werden ab der Zeile wo "Test 1" steht, bis z.B. der Zeile wo "Test 1 Ende" steht.
"Test 1" kann jedoch mehrmals vorkommen. In dem Fall sollen auch die mehrfach vorkommenden Zeilen eingeblendet werden.
Wie könnte ich das elegant lösen? :-)
Viele Grüße
Markus

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Zeilen per VBA einblenden/ausblenden
24.06.2014 08:37:05
Raphael
Hallo Markus,
warum nutzt du nicht einfach den Autofilter dafür?
Gruess
Raphael

AW: Zeilen per VBA einblenden/ausblenden
24.06.2014 08:40:02
Beverly
Hi markus,
Sub Ausblenden()
Dim lngZeile As Long
For lngZeile = 1 To 20
Cells(lngZeile, 3).EntireRow.Hidden = False = InStr(Cells(lngZeile, 3), "Test 1") > 0
Next lngZeile
End Sub


Anzeige
AW: Zeilen per VBA einblenden/ausblenden
24.06.2014 09:01:45
Raphael
Hallo Markus,
alternativ zu Karins Lösung
Sub FilterSetzen()
'Prüfen ob Autofilter aktiv ist
Application.ScreenUpdating = False
With ActiveSheet
If .AutoFilterMode = False Then .Range("A1").AutoFilter
'alle bestehenden Filter entfernen
.ShowAllData
'Filterkriterum aus Zelle lesen
.Range("A1").AutoFilter Field:=1, Criteria1:=.Cells(1, 6).Value
End With
Application.ScreenUpdating = True
End Sub
Gruess
Raphael
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Zeilen per VBA einblenden und ausblenden in Excel


Schritt-für-Schritt-Anleitung

Um Zeilen in Excel mithilfe von VBA ein- oder auszublenden, kannst Du die folgenden Schritte befolgen:

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Erstelle ein neues Modul: Klicke mit der rechten Maustaste auf "VBAProject (DeineDatei.xlsx)", wähle "Einfügen" und dann "Modul".

  3. Füge den folgenden Code ein: Du kannst das Makro anpassen, um Zeilen basierend auf einem Dropdown-Menü ein- oder auszublenden.

    Sub ZeilenEinblenden()
       Dim lngZeile As Long
       For lngZeile = 1 To 20
           If InStr(Cells(lngZeile, 3).Value, "Test 1") > 0 Then
               Rows(lngZeile).Hidden = False
           Else
               Rows(lngZeile).Hidden = True
           End If
       Next lngZeile
    End Sub
  4. Führe das Makro aus: Schließe den VBA-Editor und gehe zurück zu Excel. Drücke ALT + F8, wähle "ZeilenEinblenden" und klicke auf "Ausführen".


Häufige Fehler und Lösungen

  • Fehler: Zeilen werden nicht angezeigt.

    • Lösung: Stelle sicher, dass das Makro korrekt ausgeführt wird und die richtigen Zellen ausgewählt sind.
  • Fehler: Das Dropdown-Menü funktioniert nicht.

    • Lösung: Überprüfe, ob die Datenquelle für das Dropdown-Menü korrekt eingerichtet ist und auf die richtige Zelle verweist.

Alternative Methoden

Wenn Du keine VBA-Codes verwenden möchtest, kannst Du auch die Autofilter-Funktion nutzen, um Zeilen basierend auf bestimmten Kriterien ein- oder auszublenden. Hier ist ein Beispielcode:

Sub FilterSetzen()
    Application.ScreenUpdating = False
    With ActiveSheet
        If .AutoFilterMode = False Then .Range("A1").AutoFilter
        .ShowAllData
        .Range("A1").AutoFilter Field:=1, Criteria1:=.Cells(1, 6).Value
    End With
    Application.ScreenUpdating = True
End Sub

Praktische Beispiele

  1. Alle Zeilen einblenden: Um alle Zeilen in einem Arbeitsblatt wieder anzuzeigen, kannst Du folgenden Code verwenden:

    Sub AlleZeilenEinblenden()
       Rows.Hidden = False
    End Sub
  2. Bestimmte Zeilen ausblenden: Um spezifische Zeilen auszublenden, kannst Du diesen Code verwenden:

    Sub BestimmteZeilenAusblenden()
       Rows("5:10").Hidden = True
    End Sub

Tipps für Profis

  • Verwende Variablen: Um die Flexibilität Deines Codes zu erhöhen, definiere Variablen für Zeilen- oder Spaltennummern.
  • Fehlerbehandlung: Implementiere Fehlerbehandlungsroutinen, um das Skript robuster zu machen.
  • Makros dokumentieren: Kommentiere Deinen Code, damit Du später leichter nachvollziehen kannst, was jede Zeile bewirkt.

FAQ: Häufige Fragen

1. Wie blende ich alle Zeilen in Excel per VBA ein?
Verwende den Befehl Rows.Hidden = False, um alle Zeilen sichtbar zu machen.

2. Kann ich auch Spalten per VBA ein- oder ausblenden?
Ja, Du kannst den gleichen Ansatz verwenden, indem Du Columns.Hidden = True oder Columns.Hidden = False anwendest.

3. Funktioniert dieser Code in allen Excel-Versionen?
Ja, die meisten VBA-Codes sind kompatibel mit Excel 2010 und höheren Versionen.

4. Was ist der Vorteil von VBA gegenüber den regulären Excel-Funktionen?
VBA ermöglicht eine automatisierte und flexiblere Handhabung von Daten, die über die Standardfunktionen hinausgehen.

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