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

Forumthread: Spalten ausblenden mit Dropdown bzw. Kombinationsf

Spalten ausblenden mit Dropdown bzw. Kombinationsf
Rico
Hallo Forumsleser,
ich möchte mit Hilfe eines Kombinationsfeld (Formularsteuerelement) oder ähnlichem eine Auswahl aus 4 Funktionseigenschaften von Gebäuden und 2 zusätzliche Befehle wählen.
Alle_aus, Büro, Produktion, Lager, Labor und Alle_ein
Bei Auswahl von "Büro" (Spalte "E,...,") sollen die Spalten F,G,H,..., ausgeblendet werden.
Bei "Produktion" (Spalte "F,...,") entsprechend die Spalten E,G,H,..., und immer so wieter.
Bei "Alle_aus" sollen alle Spalten von E:H ausgeblendet werden. Später noch weitere Bereiche, siehe Datei.
Bei Alle_ein wieder alle eingeblendet werden.
Bei Start der Datei sollen immer alle Spalten eingeblendet sein, egal wie vorher gespeichert wurde.
****
so hab ichs probiert, er blendet aus wenn ich eine Eingabe in ein Feld mit "Enter" bestätige, gibt aber eine Fehlermeldung wenn ich nochmals "Büro" auswähle, daher habe ich mal aufgehört.. wo liegt bis hier der Fehler? Oder wie gehts leichter?
Public Sub Worksheet_Change(ByVal Target As Range)
If Worksheets("Alle Gebäude").Range("A9").Value = 2 Then
Worksheets("Alle Gebäude").Columns("F:H").Hidden = True
Else
Worksheets("Alle Gebäude").Columns("F:H").Hidden = False
End If
End Sub

****
https://www.herber.de/bbs/user/81283.xls
Vielen Dank fürs grübeln
Rico
Anzeige

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

Betreff
Benutzer
Anzeige
AW: Spalten ausblenden mit Dropdown bzw. Kombinationsf
06.08.2012 14:01:43
Beverly
Hi Rico,
schau dir mal das angehängte Beispiel an, vielleicht wäre das eine Möglichkeit. Verwendet habe ich 2 OptionsButton und 4 CheckBoxen aus den Formular-Steuerelementen.
https://www.herber.de/bbs/user/81286.xls


Anzeige
AW: Spalten ausblenden mit Dropdown bzw. Kombinationsf
06.08.2012 14:58:11
fcs
Hallo Rico,
das Ändern der Auswahl in einer Formularsteuerelemente-Kombobox löst nicht das Change-Ereignis im Tabellenblatt aus.
Alternativen:
1. Du weist der Kombobox ein Makro zu, das nach jeder Wertauswahl ausgeführt wird.
'Makro in einem allgemeinen Modul
Sub GebaeudeEin_Ausblenden()
Dim Spalte As Long, bolHidden As Boolean
Application.ScreenUpdating = False
With Worksheets("Alle Gebäude")
For Spalte = 5 To 18 'Spalte E bis R
bolHidden = True
Select Case Spalte
Case 9, 14, 15, 16 'Spalten mit Ist-Jahr
bolHidden = False
Case Else
Select Case .Range("$A$9").Value
Case 1 '"Alle_aus"
Case 2 '"Büro"
Select Case Spalte
Case 5, 10:   bolHidden = False
End Select
Case 3 '"Produktion"
Select Case Spalte
Case 6, 11:   bolHidden = False
End Select
Case 4 '"Lager"
Select Case Spalte
Case 7, 12:   bolHidden = False
End Select
Case 5 '"Labor"
Select Case Spalte
Case 8, 13:   bolHidden = False
End Select
Case 6 '"Alle_ein"
.Columns.Hidden = False
Exit For
End Select
End Select
.Columns(Spalte).Hidden = bolHidden
Next Spalte
End With
Application.ScreenUpdating = True
End Sub

2. Du benutzt die Datenüberprüfung mit Liste und Dropdown-Auswahl in Zelle A9
Dann kannst du das Change-Ereignis-Makro benutzen.
Public Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$9" Then
Application.ScreenUpdating = False
With Worksheets("Alle Gebäude")
For Spalte = 5 To 18 'Spalte E bis R
bolHidden = True
Select Case Spalte
Case 9, 14, 15, 16 'Spalten mit Ist-Jahr
bolHidden = False
Case Else
Select Case .Range("$A$9").Value
Case "Alle_aus"
Case "Büro"
Select Case Spalte
Case 5, 10:   bolHidden = False
End Select
Case "Produktion"
Select Case Spalte
Case 6, 11:   bolHidden = False
End Select
Case "Lager"
Select Case Spalte
Case 7, 12:   bolHidden = False
End Select
Case "Labor"
Select Case Spalte
Case 8, 13:   bolHidden = False
End Select
Case "Alle_ein"
.Columns.Hidden = False
Exit For
End Select
End Select
.Columns(Spalte).Hidden = bolHidden
Next Spalte
End With
Application.ScreenUpdating = True
End If
End Sub

Wenn man viele Kriterien vergleichen muss, dann geht dies mit Select Case meist besser/übersichtlicher als mit IF-Anweisungen.
Außerdem kann man hier mit einer Schleife die Spalten abarbeiten und abhängig von den Kriterien ein-/Ausblenden.
Gruß
Franz
Anzeige
AW: Spalten ausblenden mit Dropdown bzw. Kombinationsf
07.08.2012 10:00:33
Rico
@ Karin: Vielen Dank, deine Variante werde ich mir mal für später merken, denn da ich noch weitere Gebäude (weitere Kästchen) einfügen möchte wird es dann wohl zu unübersichtlich.
@ Franz: auch deine beiden Varianten funktionieren einwandfrei, wobei die 1. schöner ist, da bei der Kombobox der Auswahl-Pfeil bereits bei Start zu sehen ist.. das ist anwenderfreundlicher, weil intuitiver und grafisch schöner.
Vielen Dank auch dir.
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Spalten ausblenden mit Dropdown in Excel


Schritt-für-Schritt-Anleitung

  1. Erstelle ein Dropdown-Menü:

    • Wähle die Zelle aus, in der das Dropdown-Menü erscheinen soll (z.B. A9).
    • Gehe zu Daten -> Datenüberprüfung.
    • Wähle Liste aus und gib die gewünschten Werte ein: Alle_aus, Büro, Produktion, Lager, Labor, Alle_ein.
  2. Füge ein VBA-Makro hinzu:

    • Öffne den VBA-Editor mit ALT + F11.
    • Füge ein neues Modul hinzu (Einfügen -> Modul) und kopiere den folgenden Code hinein:
      Public Sub GebaeudeEin_Ausblenden()
      Dim Spalte As Long, bolHidden As Boolean
      Application.ScreenUpdating = False
      With Worksheets("Alle Gebäude")
         For Spalte = 5 To 18 'Spalte E bis R
             bolHidden = True
             Select Case .Range("$A$9").Value
                 Case "Alle_aus"
                     bolHidden = True
                 Case "Büro"
                     If Spalte = 5 Or Spalte = 10 Then bolHidden = False
                 Case "Produktion"
                     If Spalte = 6 Or Spalte = 11 Then bolHidden = False
                 Case "Lager"
                     If Spalte = 7 Or Spalte = 12 Then bolHidden = False
                 Case "Labor"
                     If Spalte = 8 Or Spalte = 13 Then bolHidden = False
                 Case "Alle_ein"
                     bolHidden = False
             End Select
             .Columns(Spalte).Hidden = bolHidden
         Next Spalte
      End With
      Application.ScreenUpdating = True
      End Sub
  3. Verknüpfe das Makro mit dem Dropdown:

    • Gehe zurück zum Excel-Dokument.
    • Klicke mit der rechten Maustaste auf die Zelle A9 und wähle Makro zuweisen....
    • Wähle das GebaeudeEin_Ausblenden Makro aus.
  4. Teste die Funktion:

    • Wähle verschiedene Optionen im Dropdown-Menü aus, um die entsprechenden Spalten auszublenden oder einzublenden.

Häufige Fehler und Lösungen

  • Fehler beim Ausblenden: Wenn die Spalten nicht wie erwartet ausgeblendet werden, stelle sicher, dass das Dropdown korrekt konfiguriert ist und die Zelle A9 tatsächlich die Auswahl enthält.
  • Makro funktioniert nicht: Überprüfe, ob die Makros in deiner Excel-Datei aktiviert sind. Gehe zu Datei -> Optionen -> Sicherheitscenter und ändere die Einstellungen für die Makros.

Alternative Methoden

  1. Verwende Checkboxen: Anstelle eines Dropdowns kannst du auch Checkboxen aus den Formularsteuerelementen verwenden. Diese ermöglichen es dir, einzelne Spalten auszublenden oder einzublenden.

  2. VBA mit Kombination aus Dropdown und Checkbox: Kombiniere das Dropdown mit Checkboxen, um die Benutzererfahrung zu verbessern und mehr Flexibilität beim Ausblenden von Spalten zu bieten.


Praktische Beispiele

  • Beispiel für die Verwendung von Dropdown: Wenn du Büro wählst, werden alle Spalten, die nicht relevant sind (z.B. F, G, H), automatisch ausgeblendet.

  • Beispiel für Checkboxen: Mit Checkboxen kannst du spezifische Spalten (z.B. Lager) manuell auswählen, die eingeblendet oder ausgeblendet werden sollen.


Tipps für Profis

  • Verwende das +-Zeichen: Du kannst die Spalten auch mit einer Kombination aus + und - ausblenden, um eine benutzerfreundliche Oberfläche zu erstellen. Dies hilft, die Übersichtlichkeit in großen Excel-Tabellen zu bewahren.

  • Nutze ScreenUpdating: Die Verwendung von Application.ScreenUpdating = False verringert die Ladezeit, wenn mehrere Spalten gleichzeitig ausgeblendet werden.


FAQ: Häufige Fragen

1. Wie kann ich mehrere Spalten gleichzeitig ausblenden?
Du kannst das Makro so anpassen, dass es mehrere Spalten in einem Durchgang ausblendet, indem du die entsprechenden Spaltennummern im Code angibst.

2. Funktioniert das auch in Excel Online?
Die VBA-Makros funktionieren nicht in Excel Online. Diese Funktionalität ist nur in der Desktop-Version von Excel verfügbar.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige