Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1584to1588
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

Spalte mit 29.2. per VB ausblenden

Spalte mit 29.2. per VB ausblenden
24.10.2017 12:25:19
Kalle
Hallo an alle!
ich würde gerne beim öffnen des Tabellenblattes bei Schaltjahren die Spalte AJ automatisch einblenden wenn in der Zelle AJ3 der 29.Febr. steht.
Falls nicht dann die Spalte AJ wieder einblenden.
Meine VB Kenntnisse sind leider eher bescheiden.
Mein Ansatz:
If date(Cells(36, 3)) = "Date(29.2.(Jahr ist egal) Then
Columns("AJ").Select
Selection.EntireColumn.Hidden = True
else
Selection.EntireColumn.Hidden = True
end if
Wie setze ich das um: "Date(29.2.(Jahr ist egal) - also wenn in Zelle AJ3 der 29.2. steht?
Schon mal ganz herzlichen Dank

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Spalte mit 29.2. per VB ausblenden
24.10.2017 12:31:34
Nepumuk
Hallo Kalle,
Jahr egal ist der falsche Ansatz. Wo in der Tabelle steht die Jahreszahl und gibst du die manuell ein oder kommt die aus einer Formel?
Gruß
Nepumuk
AW: Spalte mit 29.2. per VB ausblenden
24.10.2017 12:54:36
Kalle
In B4 des Tabellenblattes "Feb" steht =DATUM(Daten!E1;2;1) - AJ3 bezieht sich im gleichen Sheetauf diese Formel.
Im Tabellenblatt "Daten" steht in Zelle E1 das Jahr als Zahl forrmatiert zB. 2018 (Jahr kann über eine Liste aus Pulldownmenue ausgewählt werden.
Code soll im Sheet "Feb" bei Worksheet_Activate()ausgeführt werden.
Hoffe ich hab das gut genug beschrieben.
Nochmals ganz herzlichen Dank
AW: Spalte mit 29.2. per VB ausblenden
24.10.2017 13:19:23
Daniel
Hi
im Prinzip mit folgendem Code:
if Month(DateSerial(Sheets("Daten").Range("E1").value, 2, 29)) = 3 then
Sheets("Feb").Columns(36).Hidden = True
else
Sheets("Feb").Columns(36).Hidden = False
End If

oder auch als Einzeiler
Sheets("Feb").Columns(36).Hidden =  Month(DateSerial(Sheets("Daten").Range("E1").value, 2, 29)) = 3

wobei es eigentlich sinnvoller wäre, diese Aktion im Change-Event des Blattes "Daten" auszuführen, also dann, wenn du das Jahr in Zelle E1 änderst.
Gruß Daniel
Anzeige
AW: Spalte mit 29.2. per VB ausblenden
24.10.2017 14:11:08
Kalle
Hallo Daniel,
ganz herzlichen Dank, das funktioniert genauso wie ich es haben wollte.
Nur noch eine kurze Nachfrage zum Code:
if Month(DateSerial(Sheets("Daten").Range("E1").value, 2, 29)) = 3
Das vor dem GleichZeichen verstehe ich ja - aber wieso muss hinter das GleichZeichen = 3 ? Was bedeutet das genau?
Wie bereits erwähnt VB-Kenntnisse nur rudimentär. ;-)
Viele Grüße an alle Helfer
AW: Spalte mit 29.2. per VB ausblenden
24.10.2017 14:20:50
Nepumuk
Hallo Kalle,
der 29.2. in einem NichtSchaltjahr ist der 1.3. des Jahres. Wenn also der 29.2. das Monat 3 zurückgibt muss deine Spalte ausgeblendet werden.
Gruß
Nepumuk
Anzeige
AW: Spalte mit 29.2. per VB ausblenden
24.10.2017 14:53:09
Daniel
Hi
naja, MONTH gibt dir den Monat eines Datums zurück (2 = Februar, 3 = März)
wenn du per DATESERIAL ein Datum erstellst, dann kannst du auch Monats- oder Tageswerte einsetzen, die außerhalb des normalen Bereichs liegen (1-12 für Monate, 1-28/29/30/31 für Tage)
bei Erstellung des Datums zählt die Funktion dann einfach linear weiter.
Das DateSerial(2017, 2, 29) ergibt dir also immer den Tag nach dem 28.2
in einem Schaltjahr ist das der 29.2 (mit Month = 2) und in einem Nicht-Schaltjahr der 1.3 mit Month = 3.
auf diese Weise kannst du also immer prüfen, ob ein bestimmtes Jahr ein Schaltjahr ist oder nicht.
sollte sich dein verwendeter Datumsbereich auf das 21. Jahrhundert beschränken (dh ab 2001 bis 2099) dann reicht auch, um festzustellen ob ein Schaltjahr vorliegt, die einfache Prüfung ob die Jahreszahl durch 4 teilbar ist:
if Sheets("Daten").Range("E1").value Mod 4 = 0 then
Sheets("Feb").Columns(36).Hidden = False
else
Sheets("Feb").Columns(36).Hidden = True
End if
Gruß Daniel
Anzeige
AW: Spalte mit 29.2. per VB ausblenden
24.10.2017 17:24:01
kalle
Hallo Nepomuk und Daniel.
Ach wie einfach! Da hätte ich doch auch selbst drauf kommen können!
Jedenfalls vielen herzlichen Dank für die schnelle und kompetente Hilfe - und die Erklärung dazu.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige