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

Dezimalgrad in Dezimalsekunden umwandeln

Dezimalgrad in Dezimalsekunden umwandeln
06.01.2023 13:49:58
Miguel
Servus,
ich habe in einem Array eine geografische Breite in Form einer Dezimalzahl (die Anzahl der Nachkommastellen ist variabel) und möchte diese als Grad, Minuten, Dezimalselkunden anzeigen.
Irgendjemand kam auf die schlaue Idee dafür die Zeitfunktionen zu nutzen. Da es weiter als 24 gehen soll, brauche ich die eckige Klammer.
Das funktioniert:

Application.Text(dblArray(intRow) / 24, "[hh]° mm' ss''")
Leider werden die Sekunden dabei auf ganze Sekunden (auf- oder ab-) gerundet. Ich bräuchte jedoch für den Export die Sekunden mit 4 Nachkommastellen.
Hat jemand eine Idee?
Danke im voraus.
Miguel

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
ss,0000. owT
06.01.2023 13:54:47
Rudi
AW: Dezimalgrad in Dezimalsekunden umwandeln
06.01.2023 14:24:47
Miguel
Danke für die schnelle Antwort.
So eine einfache Lösung hätte ich mir gewünscht, aber

Application.Text(dblArray(intRow) / 24, "[hh]° mm' ss,0000''")
oder auch

Application.Text(CDbl("49,123456789") / 24, "[hh]° mm' ss,0000''")
gibt mir "Typen unverträglich" zurück, sowohl in Excel 2000 als auch 2016.
AW: Dezimalgrad in Dezimalsekunden umwandeln
06.01.2023 14:36:01
Jowe
oder so?
Cells(1, 1) = Format(49.123456789 / 24, "[hh]° mm' ss,0000''")
Gruß
Jochen
AW: Dezimalgrad in Dezimalsekunden umwandeln
06.01.2023 15:23:30
Miguel
Servus Jochen,
das gibt zwar keinen Fehler, aber leider auch nicht das korrekte Ergebnis.
Danke und Gruß
Miguel
Anzeige
AW: Dezimalgrad in Dezimalsekunden umwandeln
06.01.2023 19:55:35
Daniel
Hi
reichen ggf auch drei Nachkkommstellen? Bis zur TausendstelSekunkde funktioniert TEXT, aber nicht mit mehr:
dh das würde funktionieren (so wie Rudi vorgeschlagen hast, allerdings mit dem Punkt als Dezimalzeichen):

 Application.Text(dblArray(intRow) / 24, "[hh]° mm' ss.000''")
Gruß Daniel
AW: Dezimalgrad in Dezimalsekunden umwandeln
07.01.2023 19:24:13
Miguel
Servus Daniel,
ja, hinreichend genau ist es mit 3 Nachkommastellen allemal. Eine Null hänge ich noch an, um das Format einzuhalten.
Problem gelöst, vielen Dank!
Gruß
Miguel
Anzeige
Als eigene Übung
07.01.2023 07:56:02
RPP63
Moin!
Zunächst mal müsste eine evtl. negative Dezimalzahl abgefangen werden, denn VBA (und Excel) können mit negativen Uhrzeiten nichts anfangen.
Ich habe hier mal als Übung (mit Excel 365) die Geodaten vom Flughafen Wellington in NZL "umgerechnet":
 ABCDE
1Airport Wellington, NeuseelandLangitudeLatitudeGrad_LanGrad_Lat
2-41.32595726340411, 174.80799669618955-41,3259572634041174,807996696189-41° 19' 33,446''174° 48' 28,788''

ZelleFormel
B2=--WECHSELN(TEXTTEILEN(A2;", ");".";",")
D2=WENN(LINKS(B2#)="-";"-";"")&TEXT(ABS(B2#)/24;"[hh]\° mm\' ss,000\'\'")

In VBA ist es ja etwas einfacher, weil die Sonderzeichen nicht mit \ maskiert werden müssen.

Sub Geotest()
Debug.Print Geo2Seconds(-41.3259572634041)
End Sub
Function Geo2Seconds$(Geodata#)
Dim Vorzeichen$
Vorzeichen = IIf(Left(Geodata, 1) = "-", "-", "")
Geo2Seconds = _
Vorzeichen & Application.Text(Abs(Geodata / 24), "[hh]° mm' ss.000''")
End Function
Rufe ich Geotest auf, erhalte ich

-41° 19' 33.446''
Gruß Ralf
Anzeige

308 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige