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

Forumthread: 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
Anzeige

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.
Anzeige
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
AW: Dezimalgrad in Dezimalsekunden umwandeln
06.01.2023 15:54:34
Sigi.21
Hallo,
so geht's (s. Mappe)
Gruß Sigi
https://www.herber.de/bbs/user/157125.xlsx
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
Anzeige
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
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
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige