Spalten ausblenden wenn Datum

Bild

Betrifft: Spalten ausblenden wenn Datum
von: Major
Geschrieben am: 20.08.2015 08:41:05

Hallo zusammen,
habe zwar ähnliche Beiträge gefunden, aber leider sind meine VBA Kenntnisse so schwach, dass ich mir aus mehreren Beiträgen nichts zusammenstellen kann.
Ich möchte alle Spalten ausblenden, die in ihrer Zelle (Zellnr.6) das Datum kleiner Heute (also Date) haben.
Für einzelne Spalten bekommen ich das auch hin...
<i>If (Range("BR6")) < Date Then Columns("BR").EntireColumn.Hidden = True</i>
... aber ich tu mir sehr schwer damit alle Zellen der Mappe auf einmal zu durchlaufen.
Ich hoffe ich konnte mich verstädnlich ausdrücken und danke jetzt schon für eure Hilfe!

Bild

Betrifft: AW: Spalten ausblenden wenn Datum
von: Matthias
Geschrieben am: 20.08.2015 09:02:23
Hallo Major,
das ganze geht mit einer Schleife indem du deine Spalte durch eine Variable ersetzt.
Mit "Cells(Zeile,Spalte)" statt "Range()" kannst du dann die Spalte in Zahlen-Form angeben.


Sub Test()
Dim x as Long
For x = 1 To 26 'Von Spalte A bis Z
    If (Cells(6,x)) < Date Then Columns(x).EntireColumn.Hidden = True
Next x
End Sub
Um die letzte beschriebene Spalte zu ermitteln gibt es noch diesen Befehl:
Cells(1,Columns.Count).End(xlToleft).Column 

Damit kannst du deinen Endwert ersetzen falls du alle Spalten prüfen willst, etwa so:
 For x = 1 To Cells(1,Columns.Count).End(xlToleft).Column 
lg Matthias

Bild

Betrifft: AW: Spalten ausblenden wenn Datum
von: Major
Geschrieben am: 20.08.2015 11:00:04
Hallo,
na das geht ja fix hier.... danke soweit, den ersten code habe ich benutzt und funktioniert.
Eleganter ist es wie du schon sagst, wenn das makro wirklich nur bis zur letzten Zelle durchläuft und nicht unnötig weit. Das habe ich allerdings nicht hinbekommen.
Wie bette ich den zweiten code in den ersten ein?
Ersetze ich jedes x durch Columns.count?
Danke für eure Hilfe!
Gruss Major

Bild

Betrifft: AW: Spalten ausblenden wenn Datum
von: Matthias
Geschrieben am: 20.08.2015 15:55:05
Nein nein,
du ersetzt die "26", also deinen Endwert, durch "Cells(1,Columns.Count).End(xlToleft).Column "
Komplett sieht das dann so aus:


Sub Test()
Dim x as Long
For x = 1 To Cells(1,Columns.Count).End(xlToleft).Column 
    If (Cells(6,x)) < Date Then Columns(x).EntireColumn.Hidden = True
Next x
End Sub
lg Matthias

Bild

Betrifft: AW: Spalten ausblenden wenn Datum
von: Major
Geschrieben am: 20.08.2015 17:13:29
Danke dir!
Super erklärt, Thema beendet!

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Spalten ausblenden wenn Datum"