au_secours
XLDnaute Nouveau
Bonjour,
Je suis bloqué avec une fonction depuis un bon moment, merci par avance de m'aider un peu.
La fonction ci dessous (source Microsoft est fausse !! )
En fait pas complètement puisque pour convertir les coordonnées de Bordeaux
44° 50' 16" ( 44 Degré / 50 Minutes / 16 Secondes) donne la conversion en décimal = 44.83777778 (ça c'est juste )
MAIS
0° 34' 46" ( 0 Degré / 34 Minutes / 46 Secondes) donne 0.579444444 (C'est FAUX !) il manque le signe - pour que le calcul soit juste qui est -0.579444444 (en fait le même resultat mais avec le signe - qui doit être ajouté.
Comment je peux faire pour faire apparaitre le signe - sachant que mes cellules ne sont pas forcement avec un résultat négatif
Merci beaucoup
Voici la fonction
Je suis bloqué avec une fonction depuis un bon moment, merci par avance de m'aider un peu.
La fonction ci dessous (source Microsoft est fausse !! )
En fait pas complètement puisque pour convertir les coordonnées de Bordeaux
44° 50' 16" ( 44 Degré / 50 Minutes / 16 Secondes) donne la conversion en décimal = 44.83777778 (ça c'est juste )
MAIS
0° 34' 46" ( 0 Degré / 34 Minutes / 46 Secondes) donne 0.579444444 (C'est FAUX !) il manque le signe - pour que le calcul soit juste qui est -0.579444444 (en fait le même resultat mais avec le signe - qui doit être ajouté.
Comment je peux faire pour faire apparaitre le signe - sachant que mes cellules ne sont pas forcement avec un résultat négatif
Merci beaucoup
Voici la fonction
Code:
Function Convert_Decimal(Degree_Deg As String) As Double
' Declare the variables to be double precision floating-point.
Dim degrees As Double
Dim minutes As Double
Dim seconds As Double
' Set degree to value before "°" of Argument Passed.
degrees = Val(Left(Degree_Deg, InStr(1, Degree_Deg, "°") - 1))
' Set minutes to the value between the "°" and the "'"
' of the text string for the variable Degree_Deg divided by
' 60. The Val function converts the text string to a number.
minutes = Val(Mid(Degree_Deg, InStr(1, Degree_Deg, "°") + 2, _
InStr(1, Degree_Deg, "'") - InStr(1, Degree_Deg, _
"°") - 2)) / 60
' Set seconds to the number to the right of "'" that is
' converted to a value and then divided by 3600.
seconds = Val(Mid(Degree_Deg, InStr(1, Degree_Deg, "'") + _
2, Len(Degree_Deg) - InStr(1, Degree_Deg, "'") - 2)) _
/ 3600
Convert_Decimal = degrees + minutes + seconds
End Function