Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1572to1576
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

Wert von Schaltjahr abhängig

Wert von Schaltjahr abhängig
02.08.2017 15:02:13
Schaltjahr
Hallo Leute,
wie kann man das lösen?
Im jeweiligen Arbeitsblatt meiner Datei soll in AK38 die Zahl 28 und in AK 39 die Zahl 0 eingetragen werden, wenn das im Blatt "Wert Endbestand" in C1 stehende Jahr kein Schaltjahr ist.
Ist das Jahr im Blatt "Wert Endbestand" in C1 ein Schaltjahr, soll hingegen in AK38
die Zahl 0 und in AK 39 die Zahl 29 eingetragen werden.
LG
mike49

19
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Modulo
02.08.2017 15:17:13
Fennek
Hallo,
alle Jahre, die ohne Rest durch 4 teilbar sind, sind Schaltjahre.
=rest(Jahr;4)
VBA: if year(date) mod 4 = 0 then debug.print "schaltjahr"
mfg
AW: Modulo
02.08.2017 15:33:21
mike49
Hallo Fennek,
danke für die schnelle Antwort.
Allerdings habe ich kaum VBA-Kenntnisse.
Was müsste ich in ein Modul des betreffenden Blattes reinschreiben?
Gruß
mike49
AW: Wert von Schaltjahr abhängig
02.08.2017 15:46:01
Schaltjahr
Hallo Luschi,
danke für die Info. Ich weiß jetzt zwar, ob das in der Zelle stehende Jahr ein Schaltjahr ist oder nicht.
Allerdings ist das nicht die Makrolösung für mein beschriebenes Vorhaben.
Gruß
mike49
Anzeige
AW: Wert von Schaltjahr abhängig
02.08.2017 15:54:48
Schaltjahr
Hi
Sub t()
If Worksheets("Wert Endbestand").Range("C1") Mod 4 = 0 Then
Range("AK38") = 0
Range("AK39") = 29
Else
Range("AK38") = 28
Range("AK39") = 0
End If
End Sub

cu
Chris
AW: Wert von Schaltjahr abhängig
02.08.2017 16:15:32
Schaltjahr
Danke Chris.
Muss ich dieses Makro in das Tabellenblatt reinschreiben oder in ein Modul?
Gruß
mike49
Modul owT.
02.08.2017 16:30:55
ChrisL
.
AW: Modul owT.
02.08.2017 16:43:56
mike49
Hallo ChrisL,
ich müsste das Makro nun doch auf das Arbeitsblatt "Heizkosten (EG)" beschränken. Kann man das noch korrigieren?
Habe mal getestet: Wenn ich in C1 des Arbeitsblattes "Wert Endestand" die Jahreszahl 2017 eintrage, sollte eigentlich im Arbeitsblatt "Heizkosten (EG)" in AK38 "28" und in AK39 "0" stehen. Das tut's aber nicht. Habe ich was falsch gemacht?
Gruß
mike49
Anzeige
AW: Modul owT.
02.08.2017 17:06:53
Werner
Hallo Mike,
Sub t()
If Worksheets("Wert Endbestand").Range("C1") Mod 4 = 0 Then
Worksheets("Heizkosten (EG)").Range("AK38") = 0
Worksheets("Heizkosten (EG)").Range("AK39") = 29
Else
Worksheets("Heizkosten (EG)").Range("AK38") = 28
Worksheets("Heizkosten (EG)").Range("AK39") = 0
End If
Gruß Werner
End Sub

AW: Modul owT.
02.08.2017 18:02:22
mike49
Hallo Werner,
habe dieses Makro jetzt in ein Modul geschrieben:
Sub Gradtagszahlentabelle()
Application.ScreenUpdating = False
ActiveSheet.Unprotect
If Worksheets("Wert Endbestand").Range("C1") Mod 4 = 0 Then
Worksheets("Heizkosten (EG)").Range("AK38") = 0
Worksheets("Heizkosten (EG)").Range("AK39") = 29
Else
Worksheets("Heizkosten (EG)").Range("AK38") = 28
Worksheets("Heizkosten (EG)").Range("AK39") = 0
ActiveSheet.Protect
Application.ScreenUpdating = True
End If
End Sub

Wenn ich nun das Makro im Tabellenblatt "Heizkosten (EG)" ausführe, bekomme ich diese Fehleranzeige:
Laufzeitfehler '9':
Index außerhalb des gültigen Bereichs.
Gruß
mike49
Anzeige
AW: Modul owT.
02.08.2017 18:08:17
mike49
Sorry. Meinte natürlich Werner.
AW: Modul owT.
02.08.2017 21:08:34
Niclaus
Hallo Mike
Du kannst es auch mit Formeln machen: In Deiner Tabelle "Heizkosten (EG)" steht in AK 38:
=(TAG(DATUM('Wert Endbestand'!C1;3;0))=28)*(TAG(DATUM('Wert Endbestand'!C1;3;0)))
und in AK39:
=(AK38=0)*29
Grüsse Niclaus
AW: Modul owT.
02.08.2017 22:57:01
mike49
Hallo Niclaus,
ja, so geht's auch!
Danke vielmals für die Formel.
Gruß
mike49
AW: Modul owT.
03.08.2017 07:21:25
Niclaus
Gern geschehen!
Die Formel in AK 38 kann man "reduzieren":
=(TAG(DATUM('Wert Endbestand'!C1;3;0))=28)*28

Grüsse Niclaus
Anzeige
AW: Modul owT.
03.08.2017 14:30:01
mike49
Hallo Niclaus. Danke für den Tipp!
Gruß
mike49
AW: '=REST(TAG((3&-'Wert Endbestand'!C1)-1);29)
03.08.2017 07:42:41
Gerd
Gruß Gerd
AW: '=REST(TAG((3&-'Wert Endbestand'!C1)-1);29)
03.08.2017 14:33:44
mike49
Hallo Gerd,
auch dir Danke für die Formel. Ich will mal sehen, welche der Formeln ich verwende.
Gruß
mike49
AW: '=REST(TAG((3&-'Wert Endbestand'!C1)-1);29)
03.08.2017 16:23:09
Niclaus
Hallo Gerd
Eine hoch interessante Formel hast Du da! Ich habe allerdings keine Ahnung, wie sie funktioniert. Folgendes habe ich festgestellt:
=(1&-2017)*1 ergibt als Datum formatiert: 01.01.2017
=(3&-2017)*1 ergibt: 01.03.2017
Ich komme überhaupt nicht dahinter, wie das funktioniert. Kannst Du mir vor allem (1&-Jahr) erklären?
Die weitere Berechnung mit REST und TAG ist mir klar.
Vielen Dank
Niclaus
Anzeige
AW: Datümer
04.08.2017 07:32:48
Gerd
Hallo Niclaus,
du hast die Sache m.E. zutreffend ausgewertet.
-1 anstelle von *1 löst genauso eine Rechenoperation aus u. liefert den Vortag.
P.S.: Bin kein großer Formulaner u. nur zufällig drübergestolpert. :-)
Gruß Gerd

306 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige