Clever-Excel-Forum

Normale Version: Spalten ausblenden mit Variable
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

ich stehe vor dem Problem, dass die BspDatei zeigt:

Ich habe eine Tabelle mit verschiedenen Variablen in Quartalen die jeweils eine Spalte sind (die muss so aufgebaut sein).

Ich würde jetzt gerne in B2 ein Quartal eintragen, auf den Knopf drücken und dann sollen von den Spalten D-AA nur die eingeblendet sein mit dem Quartal was ich eingetragen habe (hier jetzt noch grün markiert).

Ich hoffe, dass ist verständlich, wenn nicht könnt ihr gerne Fragen :).

Muss auch kein Makro mit dem Knopf sein, VBA wäre mir auch fast lieber (also, dass es sich direkt verändert). Es müsste dann aber auch einen Befehl geben, dass alle eingeblendet werden.

Kennt jmd dafür eine Lösung?

Viele Grüße

Edit: Die Spalten dürften auch Q1_2008_Var_A, Q2_2008_VAR_A etc, heißen

Edit2: Genial wäre natürlich wenn das oder die Daten in B2 per Listefeld aussuchen könnte. Das würde unnötige Fehler bei der Eingabe vermeiden.
Hallo,

ich hab mir die Datei jetzt nicht angesehen. Ich würde ganz einfach per Formel das Quartal ermitteln und dann entsprechend Filtern.
Ein Makro ist übrigens im MS Office VBA Smile
Hallo,

vielleicht wäre auch eine benutzerdefinierte Ansicht eine Alternative.
Hallo,

ich habe jetzt in Zeile 2 noch eine Hilfszeile eingebaut. Und mit folgendem Code funktioniert es:

Code:
Sub spaltenausblenden()
Cells.EntireColumn.Hidden = False
lSpa = ActiveSheet.UsedRange.Columns.Count
For i = 1 To lSpa
   If Cells(2, i) <> Cells(1, 1) Then
       Columns(i).EntireColumn.Hidden = True
   End If
Next i
End Sub

Sub spaeinblenden()
  Cells.EntireColumn.Hidden = False
End Sub
Allerdings geht die Tabelle bis Spalte CJH, somit dauert das ausblendet fast 40 Sekunden, das Datum muss aber auch eher selten geändert werden. Wenn jmd noch eine andere Methode weiß, immer her damit :)
Viele Grüße
Hallo Felix,

folgender Code steht im schon vorhandenen VBA-Modul des entsprechenden Tabellenblattes:
Private Sub Worksheet_Change(ByVal Target As Range)
 If Target.Address = "$A$1" Then
   With Range("Quartale")
     .EntireColumn.Hidden = False
     If Len(Target.Value) Then
       .RowDifferences(.Find(What:=Range("A1").Value, LookIn:=xlValues, _
         LookAt:=xlWhole, MatchCase:=False, SearchFormat:=False)).EntireColumn.Hidden = True
     End If
   End With
 End If
End Sub
Der Bereich mit den Quartalsbezeichnungen in Zeile 2 wurde "Quartale" benannt.
In Zelle A1 wurde per Datenüberprüfung die Liste "Quartale" zugewiesen.

Gruß Uwe