Supportnet / Forum / Tabellenkalkulation
Spalten je nach Datum ausblenden
Frage
Hallo,
folgendes Problem:
In einer Excel Tabelle habe ich für jeden Monat eine Spalte über 4 Jahre. Nun habe ich mit der Aufnahmefunktion ein Makro erstellt, das einen bestimmten Bereich von 15 Monaten einblendet bzw. alle anderen Spalten ausblendet.
Dieses Makro habe ich nun zig mal kopiert und jeweils die Spalten angepasst um alle 15 Monatsbereiche zu erfassen. Auf einem anderen Blatt ein Dropdown Menü aus dem man jeden Bereich auswählen kann.
Aber das muss doch auch komfortabler gehen.
Stelle mir das so vor:
Man wählt einen Monat aus und dieser wird in ein Makro übertragen, das dann 3 Spalten vorher und 11 Spalten nachher aktiviert bzw. die anderen ausblendet.
Wie kann man sowas abbilden?
Danke im Voraus
Antwort 1 von nighty
hi Sedonion :)
hier ein spaltenfilter in wechselwirkung auf zeile eins bezogen der ein datum in der aktiven zelle erfordert und diesen monat wie jahr eingeblendet laesst
gruss nighty
Sub makro01()
Application.EnableEvents = False
Dim LastCell, spaltende, zaehler0, zaehler1, wert01
If Range("A1:IV1").EntireColumn.Hidden = True Then
Range("A1:IV1").EntireColumn.Hidden = False
End
End If
Range("A1:IV1").EntireColumn.Hidden = False
Set LastCell = ActiveSheet.Cells.SpecialCells(xlLastCell)
spaltende = LastCell.Column
wert01 = Month(ActiveCell) & "." & Year(ActiveCell)
For zaehler1 = 1 To spaltende
If wert01 = Month(Cells(1, zaehler1)) & "." & Year(ActiveCell) Then
Cells(1, zaehler1).EntireColumn.Hidden = False
Else
Cells(1, zaehler1).EntireColumn.Hidden = True
End If
Next zaehler1
Application.EnableEvents = True
End Sub
hier ein spaltenfilter in wechselwirkung auf zeile eins bezogen der ein datum in der aktiven zelle erfordert und diesen monat wie jahr eingeblendet laesst
gruss nighty
Sub makro01()
Application.EnableEvents = False
Dim LastCell, spaltende, zaehler0, zaehler1, wert01
If Range("A1:IV1").EntireColumn.Hidden = True Then
Range("A1:IV1").EntireColumn.Hidden = False
End
End If
Range("A1:IV1").EntireColumn.Hidden = False
Set LastCell = ActiveSheet.Cells.SpecialCells(xlLastCell)
spaltende = LastCell.Column
wert01 = Month(ActiveCell) & "." & Year(ActiveCell)
For zaehler1 = 1 To spaltende
If wert01 = Month(Cells(1, zaehler1)) & "." & Year(ActiveCell) Then
Cells(1, zaehler1).EntireColumn.Hidden = False
Else
Cells(1, zaehler1).EntireColumn.Hidden = True
End If
Next zaehler1
Application.EnableEvents = True
End Sub
Antwort 2 von nighty
hi ihr :)
schnell noch korrigiert :)
grusss nighty
Sub makro01()
Application.EnableEvents = False
Dim LastCell As Range
Dim spaltende As Integer
Dim zaehler1 As Integer
With ActiveSheet
If .Range("A1:IV1").EntireColumn.Hidden = True Then
.Range("A1:IV1").EntireColumn.Hidden = False
End
End If
.Range("A1:IV1").EntireColumn.Hidden = False
For zaehler1 = 1 To .UsedRange.SpecialCells(xlCellTypeLastCell).Column
If Month(ActiveCell) & "." & Year(ActiveCell) = Month(.Cells(1, zaehler1)) & "." & Year(ActiveCell) Then
.Cells(1, zaehler1).EntireColumn.Hidden = False
Else
.Cells(1, zaehler1).EntireColumn.Hidden = True
End If
Next zaehler1
End With
Application.EnableEvents = True
End Sub
schnell noch korrigiert :)
grusss nighty
Sub makro01()
Application.EnableEvents = False
Dim LastCell As Range
Dim spaltende As Integer
Dim zaehler1 As Integer
With ActiveSheet
If .Range("A1:IV1").EntireColumn.Hidden = True Then
.Range("A1:IV1").EntireColumn.Hidden = False
End
End If
.Range("A1:IV1").EntireColumn.Hidden = False
For zaehler1 = 1 To .UsedRange.SpecialCells(xlCellTypeLastCell).Column
If Month(ActiveCell) & "." & Year(ActiveCell) = Month(.Cells(1, zaehler1)) & "." & Year(ActiveCell) Then
.Cells(1, zaehler1).EntireColumn.Hidden = False
Else
.Cells(1, zaehler1).EntireColumn.Hidden = True
End If
Next zaehler1
End With
Application.EnableEvents = True
End Sub

