Registriert seit: 07.10.2021
Version(en): 2016
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
Registriert seit: 12.03.2016
Version(en): Excel 2003
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
Registriert seit: 07.10.2021
Version(en): 2016
Danke für die schnelle Antwort. Ich werde das mal probieren und dann eine Rückmeldung geben.
VG
Rudi
Registriert seit: 07.10.2021
Version(en): 2016
Funktioniert perfekt.
Danke
Registriert seit: 07.10.2021
Version(en): 2016
17.10.2021, 16:49
(Dieser Beitrag wurde zuletzt bearbeitet: 17.10.2021, 16:58 von bigrudi1966.)
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
Registriert seit: 12.03.2016
Version(en): Excel 2003
17.10.2021, 19:21
(Dieser Beitrag wurde zuletzt bearbeitet: 17.10.2021, 19:28 von Gast 123.)
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.2021mfg 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
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
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.
| A | B | C | D | E | F | G | H | I | J | K | L | M | N | O |
1 | 17.10 | | | | | | | 12.10 | 13.10 | 14.10 | 15.10 | 16.10 | 17.10 | 18.10 | 19.10 |
2 | 12 | | | | | | | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
3 | 12 | | | | | | | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
4 | 12 | | | | | | | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
5 | 12 | | | | | | | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
6 | 12 | | | | | | | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
Zelle | Formel |
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)
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
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)
Registriert seit: 07.10.2021
Version(en): 2016
18.10.2021, 10:45
(Dieser Beitrag wurde zuletzt bearbeitet: 18.10.2021, 10:46 von bigrudi1966.)
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
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
18.10.2021, 11:06
(Dieser Beitrag wurde zuletzt bearbeitet: 18.10.2021, 11:07 von RPP63.)
(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.
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)