Supportnet Computer
Planet of Tech

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

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

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: