Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1960to1964
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Spalten bedingt ausblenden (Wochentag)

Spalten bedingt ausblenden (Wochentag)
06.02.2024 12:53:44
CS_Nel
Hallo Forum,

ich habe hier schon gesucht und auch Goggle bemüht aber noch keine Lösung gefunden, die ich für mich anpassen könnte. Meine Kenntnisse in VBA sind eher bescheiden wahrscheinlich liegts auch daran.
Ich habe hier Daten, die ich monatsweise erfassen muss. Dazu habe ich Tabellen, die jeden Monat wieder Verwendung finden. Ich würde nun gern in diesen Tabellen die Spalten für die Wochenenden ausblenden. Bis jetzt habe ich mir mit einer bedingten Formatierung geholfen falsche Eintragungen schnell zu finden. Aber natürlich kommt es zu keinen falschen Eintragungen wenn die Spalten ausgeblendet sind.
In Zelle B3 steht das Datum (z.B. 01.01.2024 mit Format "MMMM JJJJ")
In der Zeile 6 stehen die Daten der Tage (C6="01.01.2024", D6="02.01.2024" etc.)
Ich möchte jetzt quasi testen ob der Wert von WOCHENTAG(C6,2)>5 ist und damit die entsprechende Spalte ausblenden.

Wie kann ich das in die Tabelle einbauen?

Viele Grüße
CS_Nel

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Spalten bedingt ausblenden (Wochentag)
06.02.2024 14:57:26
Crazy Tom
moin

eine Möglichkeit

Sub wochenende_wech()

Dim rngZelle As Range, rngBereich As Range
Dim lngLetzte As Long
lngLetzte = Cells(6, Columns.Count).End(xlToLeft).Column
Set rngBereich = Range(Cells(6, 3), Cells(6, lngLetzte))
For Each rngZelle In rngBereich
If Weekday(rngZelle.Value, vbMonday) > 5 Then
rngZelle.EntireColumn.Hidden = True
End If
Next
End Sub


mfg Tom
AW: Spalten bedingt ausblenden (Wochentag)
06.02.2024 16:06:48
CS_Nel
Hallo Crazy Tom,

danke für die schnelle Antwort. Das Makro funktioniert wunderbar.
Allerdings weis ich nicht wie ich es automatisch ausführen lassen kann, wenn die Zelle C3 bearbeitet wurde. Gibt es dazu eine Anleitung?
Was ich gefunden habe übersteigt meine VBA-Kenntnisse.

Private Sub Worksheet_Change(ByVal Target As Range)

Dim KeyCells As Range, rngZelle As Range, rngBereich As Range

Set rngBereich = Range(Cells(6, 3), Cells(6, 34))
Set KeyCells = Range("B3")
' Ich habe den Bereich fest definiert, weil weiter hinten noch andere Daten stehen.
If Not Application.Intersect(KeyCells, Range(Target.Adress)) Is Nothing Then

For Each rngZelle In rngBereich
If Weekday(rngZelle.Value, vbMonday) > 5 Then
rngZelle.EntireColumn.Hidden = True
Else
rngZelle.EntireColumn.Hidden = False
End If
Next
End If
End Sub


Ich bekomme eine Fehlermeldung (438) "Objekt unterstützt diese Eigenschaft oder Methode nicht." und die erste If-Zeile wird markiert.
Kann es sein, dass dies mit meine Excel-Version noch nicht funktioniert?

Und mir ist noch was anderes eingefallen. Wenn ich die Datei für den nächsten Monat wiederverwende muss ich ja die zuvor ausgeblendeten Spalten wieder einblenden. Deshalb habe ich das Else erweitert.

Viele Grüße
CS_Nel
Anzeige
AW: Spalten bedingt ausblenden (Wochentag)
06.02.2024 19:34:39
Crazy Tom
na vielleicht passt es so besser?

Private Sub Worksheet_Change(ByVal Target As Range)

Dim KeyCells As Range, rngZelle As Range, rngBereich As Range
Set rngBereich = Range(Cells(6, 3), Cells(6, 34))
Columns("C:AH").Hidden = False
Set KeyCells = Range("B3")
' Ich habe den Bereich fest definiert, weil weiter hinten noch andere Daten stehen.
If Not Intersect(Target, KeyCells) Is Nothing Then
For Each rngZelle In rngBereich
If Weekday(rngZelle.Value, vbMonday) > 5 Then
rngZelle.EntireColumn.Hidden = True
End If
Next
End If
End Sub


mfg Tom
Anzeige
AW: Spalten bedingt ausblenden (Wochentag)
07.02.2024 09:26:39
CS_Nel
Hallo nochmal Tom,

Heute konnte ich deine letzte Änderung testen und es klappt so wunderbar. Danke nochmal.

Viele Grüße
CS_Nel

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige