Spalten ausblenden wenn Datum = Heute
#1
Hallo zusammen, 

in den Spalten G1-K1 steht ein Datum.

Wie kann ich die kompletten Spalten ausblenden wenn das Datum ungleich Heute ist?

Es soll also nur die Spalte sichtbar sein wo in der ersten Zeile (G1-K1) das aktuelle Datum steht.

Ich habe schon mal mit verschiedenen VBA experimentiert...leider ohne Erfolg.

Danke im Voraus für Eure Hilfe 

VG
Rudi
Antworten Top
#2
Hallo

probier es bitte mal mit diesem Code. Viel Spass beim testen ...
Code:
Sub Spalten_ausblenden()
    'Spalten G:K ausblenden
    Columns("G:K").EntireColumn.Hidden = True
    For j = 7 To 10
       'heutiges Fatum wieder einblenden
       If CLng(Cells(1, j)) = CLng(Date) Then _
          Columns(j).EntireColumn.Hidden = False
    Next j
End Sub

mfg  Gast 123
Antworten Top
#3
Danke für die schnelle Antwort. Ich werde das mal probieren und dann eine Rückmeldung geben.

VG
Rudi
Antworten Top
#4
Funktioniert perfekt.

Danke
Antworten Top
#5
Hallo,

grundsätzlich funktioniert das Makro perfekt. 

Ist es richtig das ich eine Fehlermeldung erhalte, wenn im genannten Bereich ein Datum fehlt? Zum Bespiel sind in meiner Tabelle keine Sonntage aufgeführt. Wenn ich heute (Sonntag) das Makro ausführe ist eine Fehlermeldung korrekt?

Laufzeitfehler '13':
Typen unverträglich 

Viele Grüße
Rudi
Antworten Top
#6
Hallo

ich war selbst etwas erschrocken und habe den Code noch mal getestet. Er funktioniert auch OHNE Datum, dann wird alles ausgeblendet.
Einzige Fehlermöglichkeit:  ein ungültiges Datum, sei es Text oder unzulässig, wie 30.02.2021 oder 32.10.2021

mfg Gast 123

Code:
Sub Spalten_ausblenden()
    On Error Resume Next
    'Spalten G:K ausblenden
    Columns("G:K").EntireColumn.Hidden = True
    For j = 7 To 10
       'heutiges Fatum wieder einblenden
       If CLng(Cells(1, j)) = CLng(Date) Then _
          Columns(j).EntireColumn.Hidden = False
       If Err > 0 Then MsgBox "Ungültige Datum in Spalte " & j: Err.Clear
    Next j
End Sub
Antworten Top
#7
Moin und völlig außer Konkurrenz!
Sehr viel einfacher wäre es ja, die Liste zu transponieren und dann nach Datum von heute zu filtern.

Diesen Ansatz greife ich mit der folgenden Formel auf.
Achtung!
Sie hilft dem TE nicht, da sie ein aktuelles Excel voraussetzt.

ABCDEFGHIJKLMNO
117.1012.1013.1014.1015.1016.1017.1018.1019.10
2127891011121314
3127891011121314
4127891011121314
5127891011121314
6127891011121314

ZelleFormel
A1=MTRANS(LET(b;MTRANS(H1:O6);FILTER(b;INDEX(b;;1)=HEUTE())))

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#8
Warum ich das gestern nicht ausprobiert habe?
FILTER() braucht tatsächlich nicht das transponieren!
=FILTER(H1:O6;H1:O1=HEUTE())
Funktioniert!
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#9
Guten Morgen,

irgendwie klappt das auf einmal nicht mehr. Die Tabelle ist jetzt angepasst worden und die Spalten, in denen ein Datum steht sind G:AE. Ich habe den Code mal angepasst, na ja, mehr ein Versuch. Im Ergebnis sieht es so aus, das nun alle Spalten ausgeblendet werden. Den Code habe ich unten angefügt.

Code:
Sub Spalten_ausblenden()
    On Error Resume Next
    'Spalten G:AD ausblenden
    Columns("G:AD").EntireColumn.Hidden = True
    For j = 7 To 30
        'heutiges Fatum wieder einblenden
       If CLng(Cells(1, j)) = CLng(Date) Then _
          Columns(j).EntireColumn.Hidden = False
       If Err > 0 Then MsgBox "Ungültige Datum in Spalte " & j: Err.Clear
    Next j
End Sub 
Antworten Top
#10
(18.10.2021, 10:45)bigrudi1966 schrieb: irgendwie klappt das auf einmal nicht mehr.

Moin!
Irgendwie habe ich mit dem Code keine Probleme.
Er funktioniert und läuft anstandslos durch.
FXAE
118. Okt

Stehen denn wirklich "richtige" Daten in Zeile 1?
(kannst Du mit =ISTZAHL(Datum) prüfen)

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste