Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Format in VBA

Format in VBA
04.07.2006 17:16:09
HermannZ
hallo!
eine frage zur festlegung des Formats bei der Ausgabe eines Makros;
hier das Makro ( aus dem Forum)

Function Sonnenaufgang( _
Längengrad As Double, _
Breitengrad As Double, _
Datum As Date) As Date
Dim Deklination As Double, DiffWozMoz As Double
Dim Jahrestag As Double, H_aufgang As Double
Dim DiffMittag As Double, dummy As Double
Const Pi = 3.141592653
'Sonnenaufgang bei -50 Bogenminuten
H_aufgang = (-50 / 60) * Pi / 180
'Tag des Jahres
Jahrestag = Datum - DateSerial(Year(Datum), 1, 0)
Breitengrad = Breitengrad * Pi / 180
Längengrad = Längengrad * Pi / 180
'Breitengrad, über dem die Sonne Mittags senkrecht steht
Deklination = 0.40954 * Sin(0.0172 * (Jahrestag - 79.35))
'Differenz zum Mittag in Stunden berechnen
dummy = (Sin(H_aufgang) - Sin(Breitengrad) * Sin(Deklination)) _
/ (Cos(Breitengrad) * Cos(Deklination))
DiffMittag = 12 * (Atn((dummy * -1) / _
Sqr(dummy * -1 * dummy + 1)) _
+ 2 * Atn(1)) / Pi
DiffWozMoz = -0.1752 * Sin(0.03343 * Jahrestag + 0.5474) _
- 0.134 * Sin(0.018234 * Jahrestag - 0.1939)
Sonnenaufgang = (12 - DiffMittag - DiffWozMoz + _
(15 - Längengrad * 180 / Pi) * 4 / 60) / 24
End Function

Es geht um diese Anweisung!
Sonnenaufgang = (12 - DiffMittag - DiffWozMoz + _
(15 - Längengrad * 180 / Pi) * 4 / 60) / 24
Bei dieser Anweisung wird die Uhrzeit als zahl ausgegeben, ich hätte gerne folgende Ausgabe; SA 21:53
Wie muss ich diese Anweisung ändern!
Danke HermannZ
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Format in VBA
04.07.2006 17:31:53
Peter
Hallo HerrmannZ,
versuch es so:
Sonnenaufgang = "SA " & Format((12 - DiffMittag - DiffWozMoz + _
(15 - Längengrad * 180 / Pi) * 4 / 60) / 24, "hh:mm")
Viele Grüße Peter
Eine kurze Nachricht, ob es läuft, wäre nett - danke.
AW: Format in VBA
04.07.2006 17:39:20
HermannZ
hallo peter;
Danke für die Antwort;
das hatte ich schon probiert dann habe ich die Ausgabe #WERT was ich ja nicht verstehen kann.
muss gerade mal den Rechner verlassen melde mich später wieder;
gruß hermann
Anzeige
AW: Format in VBA
04.07.2006 17:37:31
fcs
Hallo Hermann,
wen ich die Formel richtig lese, dann wird die Uhrzeit des Sonnenaufgangs berechnet.
Am besten weist du der Zelle, in der die Formel steht, folgendes benutzerdefinierte Format zu: "SA "hh:mm
Du kannst auch das Makro ändern:

Sonnenaufgang = "SA " & Format((12 - DiffMittag - DiffWozMoz + _
(15 - Längengrad * 180 / Pi) * 4 / 60) / 24,"hh:mm")

gruss Franz
Anzeige
AW: Format in VBA
04.07.2006 17:41:34
IngGi
Hallo Hermann,
die Formatierung solltest du erst in der Zelle festlegen, in die der Funktionswert letztlich geschrieben wird, und nicht schon in der Funktion selbst. Verwende dazu das folgende benutzerdefinierte Format ohne Klammern ("SA" hh:mm).
Ansonsten müsstest du den Funktionswert als Text zurückgeben. Dann würde die erste Zeile der Funktion so aussehen:
Function Sonnenaufgang( _
Längengrad As Double, _
Breitengrad As Double, _
Datum As Date) As String
und die Wertzuweisung am Ende der Funktion müsste demnach so aussehen:
Sonnenaufgang = "SA " & Format((12 - DiffMittag - DiffWozMoz + _
(15 - Längengrad * 180 / Pi) * 4 / 60) / 24, "hh:mm")
Gruß Ingolf
Anzeige
AW: Format in VBA
04.07.2006 17:47:45
IngGi
Hallo nochmal,
habe gerade gesehen, dass ich etwas spät dran war mit meiner Antwort und hab mir deine erste Reaktion auf die Antwort von Peter angeschaut, die sich ja mit meiner eigenen soweit deckt. Ich denke die Rückgabe des Funktionswertes als String sollte das Problem lösen.
Gruß Ingolf
Anzeige
AW: Format in VBA
04.07.2006 19:07:39
HermannZ
Hallo Ingolf;
das war es, den Funktionswert von Date in String ändern.
Danke.
gruß hermann
;

Forumthreads zu verwandten Themen

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige