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

Forumthread: Per VBA Zeilen ausblenden und einblenden

Per VBA Zeilen ausblenden und einblenden
11.02.2016 15:18:53
Rene
Hallo zusammen,
ich habe ein Drop Down menü.
es soll wie der Text angibt, bestimmte Zeilen ausblenden und wieder einblenden,
anbei mein Versuch.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With Tabelle1
If .Range("C3").Text = "JIS_Gestelle" Then 'JIS Gestelle
.Rows("15:21").EntireRow.Hidden = False
Else
.Rows("09:14").EntireRow.Hidden = True
.Rows("22:26").EntireRow.Hidden = True
End If
If .Range("C3").Text = "Material" Then 'Material
.Rows("09:14").EntireRow.Hidden = False
Else
.Rows("15:26").EntireRow.Hidden = True
End If
If .Range("C3").Text = "Technik" Then 'Technik
.Rows("22:26").EntireRow.Hidden = False
Else
.Rows("09:21").EntireRow.Hidden = True
End If
End With
End Sub

Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
evtl das falsche Ereignis gewählt?
11.02.2016 15:29:27
Matthias
Hallo
Denn das Worksheet_SelectionChange tritt bereit ein wenn Du eine Zelle anklickst.
Soll doch sicher erst passieren, bei einer Änderung eines Zellinhaltes
Das wäre dann aber ein anderes Ereignis: Worksheet_Change.
Gruß Matthias

AW: evtl das falsche Ereignis gewählt?
11.02.2016 15:44:27
Rene
Ja genau, ich habe in Zelle C3 ein Drop Down drin, bei Veränderung der Zelle soll sich nur der Bereich zeigen den ich im Code enthalten habe, Problem er erscheint nur bei "Technik" der Rest wie "JIT-Gestelle" oder "Material" erscheinen nicht.
Private Sub Worksheet_Change(ByVal Target As Range)
With Tabelle1
If .Range("C3").Text = "JIS_Gestelle" Then 'JIS Gestelle
.Rows("15:21").EntireRow.Hidden = False
Else
.Rows("09:14").EntireRow.Hidden = True
.Rows("22:26").EntireRow.Hidden = True
End If
If .Range("C3").Text = "Material" Then 'Material
.Rows("09:14").EntireRow.Hidden = False
Else
.Rows("15:26").EntireRow.Hidden = True
End If
If .Range("C3").Text = "Technik" Then 'Technik
.Rows("22:26").EntireRow.Hidden = False
Else
.Rows("09:21").EntireRow.Hidden = True
End If
End With
End Sub

Anzeige
wann willst Du was ein-/ausblenden ?
11.02.2016 16:07:40
Matthias
Hallo
Im Moment bin ich nicht sicher was Du wann tatsächlich ein- bzw. ausblenden willst
Erkläre es doch bitte mal mit Deinen Worten.
Gruß Matthias

AW: wann willst Du was ein-/ausblenden ?
11.02.2016 16:16:31
Rene
Ich habe ein Speerzettel der Kopf ist immer gleich
Zeile 1 bis 8
nun habe ich ein Drop down menü in Zelle C3 und will wenn der bestimmte Text erscheint das auch der Abschnitt das zu erscheint.
DropDown: Technik, Jit-Gestelle, Material
Technik ist von Zeile 22 bis 26
Material ist von Zeile 9 bis 15
Jit-gestelle von zeile 16 bis 21
Wenn ich Technik auswähle soll Zeile 22 bis 26 erscheinen und der Rest ausgeblendet
Wenn ich Material auswähle soll Zeile 9 bis 15 erscheinen und der Rest ausgeblendet
usw.
ich hoffe es ist so verständlich :)

Anzeige
AW: wann willst Du was ein-/ausblenden ?
11.02.2016 16:39:25
Matthias
Hallo
So ?
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("C3").Text = "" Then  'Technik
Rows("09:26").EntireRow.Hidden = False
End If
If Range("C3").Text = "JIS_Gestelle" Then 'JIS Gestelle
Rows("09:26").EntireRow.Hidden = True
Rows("16:21").EntireRow.Hidden = False
End If
If Range("C3").Text = "Material" Then 'Material
Rows("09:26").EntireRow.Hidden = True
Rows("09:14").EntireRow.Hidden = False
End If
If Range("C3").Text = "Technik" Then  'Technik
Rows("09:26").EntireRow.Hidden = True
Rows("22:26").EntireRow.Hidden = False
End If
End Sub
Gruß Matthias

Anzeige
AW: wann willst Du was ein-/ausblenden ?
11.02.2016 16:44:37
Rene
Super Technik und Material funktionieren aber JIS_Gestelle, dort passiert nix, liegt es daran des es genau in der Mitte liegt zwischen den beiden?

AW: wann willst Du was ein-/ausblenden ?
11.02.2016 16:48:34
Rene
AHHHH OKAY FEHLER ENTDECKT HATTE EIN LEERZEICHEN DRIN.
Vielen lieben Dank :).

Danke für die Rückmeldung ... owT
11.02.2016 16:51:52
Matthias
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zeilen in Excel mit VBA ausblenden und einblenden


Schritt-für-Schritt-Anleitung

Um Zeilen in Excel mit VBA aus- und einzublenden, kannst du die folgende Schritt-für-Schritt-Anleitung befolgen:

  1. Öffne deine Excel-Datei und gehe zum VBA-Editor (Drücke ALT + F11).

  2. Füge ein neues Modul hinzu:

    • Klicke mit der rechten Maustaste auf „VBAProject (deineDatei.xlsx)“ und wähle „Einfügen“ > „Modul“.
  3. Kopiere den folgenden VBA-Code in das Modul:

    Private Sub Worksheet_Change(ByVal Target As Range)
       If Range("C3").Text = "JIS_Gestelle" Then
           Rows("09:26").EntireRow.Hidden = True
           Rows("16:21").EntireRow.Hidden = False
       ElseIf Range("C3").Text = "Material" Then
           Rows("09:26").EntireRow.Hidden = True
           Rows("09:14").EntireRow.Hidden = False
       ElseIf Range("C3").Text = "Technik" Then
           Rows("09:26").EntireRow.Hidden = True
           Rows("22:26").EntireRow.Hidden = False
       Else
           Rows("09:26").EntireRow.Hidden = False
       End If
    End Sub
  4. Schließe den VBA-Editor und gehe zurück zu deiner Excel-Tabelle.

  5. Teste das Drop-Down-Menü in Zelle C3. Ändere die Auswahl und beobachte, wie die entsprechenden Zeilen ein- und ausgeblendet werden.


Häufige Fehler und Lösungen

  • Leere Zelle in C3: Wenn die Zelle C3 leer ist, könnte dies zu unerwartetem Verhalten führen. Stelle sicher, dass immer ein gültiger Wert ausgewählt ist.
  • Falsches Ereignis: Achte darauf, dass du das richtige Ereignis (Worksheet_Change) verwendest. Der Code funktioniert nicht richtig, wenn Worksheet_SelectionChange verwendet wird.
  • Leerzeichen im Text: Ein häufiges Problem ist das Vorhandensein von Leerzeichen im Text. Überprüfe, ob der Text in C3 genau übereinstimmt, z.B. "JIS_Gestelle".

Alternative Methoden

Falls du keine VBA-Lösung verwenden möchtest, gibt es auch alternative Methoden:

  • Filter verwenden: Du kannst die Filter-Funktion in Excel nutzen, um nur die gewünschten Zeilen anzuzeigen.
  • Bedingte Formatierung: Setze bedingte Formatierungen ein, um Zeilen visuell hervorzuheben, anstatt sie auszublenden.

Praktische Beispiele

Hier sind einige Beispiele, wie du den VBA-Code anpassen kannst:

  1. Mehrere Zeilen ausblenden: Um mehrere Zeilen gleichzeitig auszublenden, kannst du die Rows-Methode erweitern:

    Rows("09:14").EntireRow.Hidden = True
    Rows("22:26").EntireRow.Hidden = True
  2. Alle Zeilen einblenden: Wenn du alle Zeilen wieder einblenden möchtest, füge am Anfang deines Codes Folgendes hinzu:

    Rows("09:26").EntireRow.Hidden = False

Tipps für Profis

  • Verwende Option Explicit: Dies hilft dir, Fehler durch nicht deklarierte Variablen zu vermeiden.
  • Fehlerbehandlung: Implementiere Error-Handling in deinem VBA-Code, um unerwartete Fehler abzufangen.
  • Testen in einer Kopie: Teste deinen Code immer in einer Kopie deiner Datei, um Datenverlust zu vermeiden.

FAQ: Häufige Fragen

1. Wie kann ich die Zeilen bei einem anderen Ereignis ausblenden?
Du kannst das Worksheet_Change-Ereignis durch ein anderes Ereignis ersetzen, z.B. Worksheet_SelectionChange, aber achte darauf, wie es die Logik deines Codes beeinflusst.

2. Funktioniert dieser Code in allen Excel-Versionen?
Ja, der Code sollte in den meisten Excel-Versionen funktionieren, solange die VBA-Funktionalität unterstützt wird (Excel 2007 und neuer).

3. Was ist, wenn ich mehr als drei Optionen im Drop-Down-Menü habe?
Du kannst zusätzliche ElseIf-Bedingungen hinzufügen, um die Logik für die neuen Optionen zu implementieren.

4. Wie blende ich nur eine bestimmte Zeile aus?
Verwende den Code Rows("10").EntireRow.Hidden = True, um eine bestimmte Zeile auszublenden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige