Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1736to1740
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Spalten ausblenden nach ausgewählten Zellen

Spalten ausblenden nach ausgewählten Zellen
24.01.2020 15:36:02
Krawietz
Hallo,
ich möchte gerne folgendes in der dargestellten Tabelle machen:
Userbild
In den ersten 3 Zeilen sind Kriterien für eine Filterung enthalten. Es sollen Spalten mit gleichen Inhalten in den jeweiligen Zeilen ausgeblendet werden, aber jeweils nur gefiltert nach einer Zeile.
Also wie folgt:
Wenn ich in der 1.Zeile Wet wähle, werden diese Spalten ausgeblendet.
Wenn ich in der 2. Zeile STYRAX wähle, werden diese Spalten ausgeblendet.
Wenn ich in der 3. Zeile A31 wähle, werden diese Spalten ausgeblendet.
Ist sowas ohne größeren Aufwand möglich? Kann mir vielleicht jemand helfen?
Leider sind meine VBA-Kenntnisse gleich null, aber mit Gruppieren komme ich nicht weiter.
Vielen Dank im voraus.
Ronny Krawietz

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

Betreff
Datum
Anwender
Anzeige
AW: Spalten ausblenden nach ausgewählten Zellen
24.01.2020 16:15:45
Werner
Hallo,
meinst du so:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim i As Long, raSpalte As Range
Select Case Target.Row
Case 1
If UCase(Target) = "WET" Then
Cancel = True
For i = 1 To Cells(1, Columns.Count).End(xlToLeft).Column
If UCase(Cells(1, i)) = "WET" Then
If raSpalte Is Nothing Then
Set raSpalte = Cells(1, i)
Else
Set raSpalte = Union(raSpalte, Cells(1, i))
End If
End If
Next i
raSpalte.EntireColumn.Hidden = True
Set raSpalte = Nothing
End If
Case 2
If UCase(Target) = "STYRAX" Then
Cancel = True
For i = 1 To Cells(2, Columns.Count).End(xlToLeft).Column
If UCase(Cells(2, i)) = "STYRAX" Then
If raSpalte Is Nothing Then
Set raSpalte = Cells(2, i)
Else
Set raSpalte = Union(raSpalte, Cells(2, i))
End If
End If
Next i
raSpalte.EntireColumn.Hidden = True
Set raSpalte = Nothing
End If
Case 3
If UCase(Target) = "A31" Then
Cancel = True
For i = 1 To Cells(3, Columns.Count).End(xlToLeft).Column
If UCase(Cells(3, i)) = "A31" Then
If raSpalte Is Nothing Then
Set raSpalte = Cells(3, i)
Else
Set raSpalte = Union(raSpalte, Cells(3, i))
End If
End If
Next i
raSpalte.EntireColumn.Hidden = True
Set raSpalte = Nothing
End If
Case Else
End Select
End Sub
Das Makro gehört ins Codemodul des Tabellenblattes, auf der es sich auswirken soll.
Rechtsklick auf den Tabellenblattreiter - Code anzeigen - Code rechts ins Codefenster kopieren.
Das Makro startet automatisch bei Doppelklick auf die entsprechende Zelle in Zeile 1, 2 oder 3
Gruß Werner
Anzeige
AW: Spalten ausblenden nach ausgewählten Zellen
30.01.2020 12:28:59
Krawietz
Hallo Werner,
danke dir. Das passt fast, aber ich habe mich falsch ausgedrückt. Die 3 Fälle waren beispiel und sollten eigentlich für die ganze Zeile mit dem jeweiligen String gelten.
Ich probiere jetzt mal, wenn ich die Subroutinen kopiere und jeweils mit dem String ändere, ob das dann geht.
Vielen Dank dir. Das hilft mir aber erstmal weiter.
VG
Ronny
AW: Spalten ausblenden nach ausgewählten Zellen
30.01.2020 13:18:51
Krawietz
Hallo Werner,
also das mit dem Kopieren und ausfüllen des einzelnen Cases hat funktioniert. Danke erstmal dafür.
Nur habe ich das nicht bis ganz zu Ende durchdacht. Ich muss die Spalten ja wieder einblenden. Geht natürlich mit markieren und Kontext EINBLENDEN. Aber kann man das mit Buttons umsetzen? Dann muss ich nur noch überlegen, wo ich die hinpacke, damit sie nicht auch verschwinden.
Vielen Dank und Grüße
Ronny
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige