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

Spalten in anderem Blatt ausblenden

Forumthread: Spalten in anderem Blatt ausblenden

Spalten in anderem Blatt ausblenden
18.05.2020 11:42:25
Te2
Hallo Zusammen,
ich habe mich schon lange durchgelesen und probiert und komme leider zu keiner Lösung... habe keinerlei VBA Kenntnisse...
Mein Problem: Ich habe zwei Tabellenblätter: Auf einem kann man jeweils per DropDown JA/NEIN auswählen, in dem anderen Tabellenblatt sollen dann jeweils Spalten ausgeblendet werden.
Bsp.
In Spalte H im ersten Tabellenblatt wählt man jeweils JA / NEIN aus
"H20" in Tabelle 1 = "NEIN" -- Spalte A-I in Tabelle 2 ausblenden
"H21" in Tabelle 1 = "NEIN" -- Spalte J-R in Tabelle 2 ausblenden
"H22" in Tabelle 1 = "NEIN" -- Spalte S-AA in Tabelle 2 ausblenden
Kann mir da jemand helfen?
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Spalten in anderem Blatt ausblenden
18.05.2020 11:47:03
Daniel
Ich habs mal mit Checkboxen gelöst gehabt
Private Sub Checkbox1_Click()
If Checkbox1.Value = True then
Columns("J:J").EntireColumn.Hidden = True
Columns("K:K").EntireColumn.Hidden = False
Else
Columns("J:J").EntireColumn.Hidden = False
Columns("K:K").EntireColumn.Hidden = True
End If
End Sub

Anzeige
AW: Spalten in anderem Blatt ausblenden
18.05.2020 11:55:19
Herbert
Hallo,
probiers mal damit:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "H20" And Target.Value = "NEIN" Then _
Sheets("Tabelle2").Columns("A:I").EntireColumn.Hidden = True
If Target.Address = "H21" And Target.Value = "NEIN" Then _
Sheets("Tabelle2").Columns("J:R").EntireColumn.Hidden = True
If Target.Address = "H22" And Target.Value = "NEIN" Then _
Sheets("Tabelle2").Columns("S:AA").EntireColumn.Hidden = True
End Sub
Servus
Anzeige
AW: Spalten in anderem Blatt ausblenden
18.05.2020 12:49:56
Luschi
Hallo Herbert,
so kann es nicht klappen, da Target.Address immer die absolute Adresse zurückgibt - also $H$20, $H$21 bzw. $H$20, oder man benutzt Target.Address(0, 0), oder prüft per 'Intersect'.
Gruß von Luschi
aus klein-Paris
AW: Spalten in anderem Blatt ausblenden
18.05.2020 12:53:41
Herbert
Hallo Luschi,
du hast recht, ich habe die "$" vergessen. Aber sonst passt es doch, oder?
Servus
Anzeige
AW: Spalten in anderem Blatt ausblenden
18.05.2020 13:04:41
Luschi
Hallo Herbert,
ja, bei mir würde das aber so aussehen:
If Target.Address = "$H$20" And LCase(Target.Value) = "nein" Then
oder
If Target.Address(0, 0) = "H20" And LCase(Target.Value) = "nein" Then
Gruß von Luschi
aus klein-Paris
AW: Spalten in anderem Blatt ausblenden
19.05.2020 07:29:53
GerdL
Moin
Private Sub Worksheet_Change(ByVal Target As Range)
Dim A As Range, B As Range, C As Range
Set A = Range("H20:H22")
Set B = Worksheets("Tabelle2").Range("A:I")
Set C = Intersect(Target, A)
If Not C Is Nothing Then
If C.Count = 1 Then
Set B = B.Offset(0, (C.Row - A.Row) * B.Columns.Count)
B.Hidden = (Target.Value = "NEIN")
End If
End If
Set A = Nothing: Set B = Nothing: Set C = Nothing:
End Sub

Gruß Gerd
Anzeige
;
Anzeige

Infobox / Tutorial

Spalten in anderem Blatt ausblenden


Schritt-für-Schritt-Anleitung

Um Spalten in einem anderen Tabellenblatt basierend auf der Auswahl in einem Dropdown-Menü auszublenden, folge diesen Schritten:

  1. Öffne das VBA-Editor-Fenster:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge den Code in das entsprechende Arbeitsblatt ein:

    • Doppelklicke auf das Tabellenblatt, in dem sich das Dropdown-Menü befindet (z.B. „Tabelle1“).
    • Füge den folgenden Code ein:
    Private Sub Worksheet_Change(ByVal Target As Range)
       If Target.Address = "$H$20" And LCase(Target.Value) = "nein" Then
           Sheets("Tabelle2").Columns("A:I").EntireColumn.Hidden = True
       ElseIf Target.Address = "$H$21" And LCase(Target.Value) = "nein" Then
           Sheets("Tabelle2").Columns("J:R").EntireColumn.Hidden = True
       ElseIf Target.Address = "$H$22" And LCase(Target.Value) = "nein" Then
           Sheets("Tabelle2").Columns("S:AA").EntireColumn.Hidden = True
       End If
    End Sub
  3. Schließe den VBA-Editor und gehe zurück zu Excel.

  4. Teste die Funktionalität, indem du „NEIN“ im Dropdown-Menü auswählst. Die entsprechenden Spalten in „Tabelle2“ sollten nun ausgeblendet werden.


Häufige Fehler und Lösungen

  • Problem: Die Spalten blenden sich nicht aus.

    • Lösung: Überprüfe, ob der VBA-Code korrekt eingefügt wurde und dass du das richtige Tabellenblatt bearbeitest.
  • Problem: Der Code reagiert nicht auf Änderungen.

    • Lösung: Stelle sicher, dass die Zellen, die du überwachen willst, tatsächlich geändert werden. Der Code funktioniert nur, wenn die Zelle geändert wird.

Alternative Methoden

Falls du keine VBA-Kenntnisse hast oder eine einfachere Lösung bevorzugst, kannst du auch Conditional Formatting (Bedingte Formatierung) verwenden, um die Sichtbarkeit der Daten zu steuern, obwohl dies nicht dasselbe ist wie das Ausblenden von Spalten.

  1. Wähle die zu formatierenden Spalten aus.
  2. Gehe zu „Start“ > „Bedingte Formatierung“ > „Neue Regel“.
  3. Wähle „Formel zur Ermittlung der zu formatierenden Zellen verwenden“ und gib eine entsprechende Formel ein.

Praktische Beispiele

Beispiel 1: Wenn du „NEIN“ in H20 auswählst, sollten die Spalten A bis I in „Tabelle2“ ausgeblendet werden.

Beispiel 2: Bei Auswahl von „NEIN“ in H21 blenden sich die Spalten J bis R aus.

Der VBA-Code von Herbert und GerdL bietet ebenfalls eine gute Grundlage, um Spalten dynamisch auszublenden, je nach Auswahl.


Tipps für Profis

  • Nutze die Intersect-Funktion, um sicherzustellen, dass der Code nur auf die Änderungen in den relevanten Zellen reagiert.

    Dim C As Range
    Set C = Intersect(Target, Range("H20:H22"))
    If Not C Is Nothing Then
      ' Dein Code hier
    End If
  • Halte deinen Code sauber und dokumentiere ihn regelmäßig, um die Wartung zu erleichtern.


FAQ: Häufige Fragen

1. Funktioniert dieser Code in Excel 2016? Ja, der Code sollte in Excel 2016 und allen späteren Versionen funktionieren.

2. Was tun, wenn der Code nicht funktioniert? Überprüfe, ob die Makros in Excel aktiviert sind und dass du den Code im richtigen Modul eingefügt hast.

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