Spalten einblenden wenn Bedingung erfüllt

Bild

Betrifft: Spalten einblenden wenn Bedingung erfüllt
von: Judith
Geschrieben am: 21.05.2015 14:37:30

Hallo zusammen,
ich stehe mal wieder vor einem Problem, bei dem ich nicht weiter komme und hoffe auf eure Hilfe.
Meine Datei zeigt die Übersicht für verschiedene Kostenarten für alle 12 Monate an. Um die Übersicht zu erleichtern soll immer nur die Spalten C und D, der aktuelle Reportmonat sowie die Jahresübersicht am Ende der Tabelle (Spalten AS to AV) eingeblendet werden. Der aktuelle Reportmonat wird mittels vorherhiger Abfrage in Zelle B1 geschrieben.
Wenn möglich sollen ebenfalls alle Formeln in dem eingeblendeten Bereich in Werte umgewandelt werden. Beispiel: Für den März sollen nur die Spalten C und D, N bis S sowie AS bis AV sichtbar sein. Hier ist die Beispieldatei:
https://www.herber.de/bbs/user/97758.xlsx
Mit case.select würde ich es wahrscheinlich hinbekommen, aber wenn möglich möchte ich es vermeiden 12 verschiedene Fälle zu definieren. Habt ihr vielleicht eine andere Idee? Ich habe es mit intersect versucht, aber da bin ich mit meinen VBA-Kenntnissen an meine Grenzen gestossen.
Viele Grüße,
Judith

Bild

Betrifft: AW: Spalten einblenden wenn Bedingung erfüllt
von: Rudi Maintaire
Geschrieben am: 21.05.2015 14:50:32
Hallo,
leere Zeilen/ Spalten haben in solchen Listen nichts zu suchen.
Wenn jemand auf 'sortieren' klickt, ist alles im Eimer.
Überdenke dein Konzept.
Gruß
Rudi

Bild

Betrifft: AW: Spalten einblenden wenn Bedingung erfüllt
von: Judith
Geschrieben am: 21.05.2015 14:55:52
Hallo Rudi,
Es handelt sich hierbei um ein vorgegebenes Format, das ich nicht verändern kann. Eventuell könnte ich Hilfseingaben in Zeile 2 einbauen, so dass jede Spalte in Zeile 2 den entsprechenden Monatsnamen trägt. Das oben beschriebene Grundproblem bleibt damit aber bestehen.
Viele Grüße,
Judith

Bild

Betrifft: Nur Monats-Spalten und Jahrestotal einblenden
von: NoNet
Geschrieben am: 21.05.2015 15:06:06
Hallo Judith,
klicke mit der rechten Maustaste auf den Namen des Blattes im Blattregister unten und wähle den Befehl "Code anzeigen..." aus.
Damit gelangst Du in das Codemodul des Tabellenblattes.
Kopiere dort diesen gesamten Code hinein :

Private Sub Worksheet_Change(ByVal Target As Range)
    'Check if Cell B1 has been edited / changed
    If Not Intersect(Target, [B1]) Is Nothing Then Show_Only_Relevant_Month_and_Total
End Sub
Sub Show_Only_Relevant_Month_and_Total()
    Dim lngCol As Long, lngEnd As Long
    
    'Show_All_Columns
    Show_All_Columns
    
    If Application.CountIf([3:3], [B1]) > 0 Then
        'Get last column (YTD) in row 4
        lngEnd = Cells(4, Columns.Count).End(xlToLeft).Column - 4
        
        'Retrieve column of relevant month
        lngCol = Application.Match([B1], [3:3], 0)
        
        'Show relevant column and total (YTD)
        Columns(5).Resize(, Columns.Count - 4).EntireColumn.Hidden = True
        Columns(lngCol).Resize(, 4).EntireColumn.Hidden = False
        Columns(lngEnd).Resize(, 4).EntireColumn.Hidden = False
        
    End If
End Sub
Sub Show_All_Columns()
    'Show all columns
    Columns.EntireColumn.Hidden = False
End Sub
Wird der Wert der Zelle B1 geändert, dann wird der entsprechende Monat in Zeile 3 gesucht und falls gefunden nur dieser (und das Jahres-Gesamt) eingeblendet, ansonsten wieder alles (z.B. wenn Zelle B1 geleert wird).
Salut, NoNet

Bild

Betrifft: AW: Spalten einblenden wenn Bedingung erfüllt
von: Rudi Maintaire
Geschrieben am: 21.05.2015 15:12:01
Hallo,

Sub aaa()
  Dim i As Long
  Application.ScreenUpdating = False
  Columns.Hidden = True
  For i = 5 To 40 Step 5
    If Cells(3, i) = Cells(1, 2) Then
      Cells(3, i).MergeArea.EntireColumn.Hidden = False
      Columns(i - 1).Hidden = False
      Columns(i + 4).Hidden = False
    End If
  Next
  Columns("A:D").Hidden = False
  Columns("AS:AV").Hidden = False
  Application.Goto Range("A1"), True
End Sub
Gruß
Rudi

Bild

Betrifft: AW: Spalten einblenden wenn Bedingung erfüllt
von: Judith
Geschrieben am: 21.05.2015 15:42:15
Vielen Dank Rudi und NoNet, beide Makros funktionieren bestens ! Ihr seid spitze!

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Spalten einblenden wenn Bedingung erfüllt"