Conversion de degrés/minutes/secondes en degrés décimaux

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
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
 
Re : Conversion de degrés/minutes/secondes en degrés décimaux

Bonsoir au_secours, et bienvenue ) toi,

Le calcul est juste : puisque tu convertis une valeur en degrés positifs, tu obtiens donc une valeur décimale positive.

Sur quel système te bases-tu pour attendre une valeur négative ?

A +

Cordialement.
 
Re : Conversion de degrés/minutes/secondes en degrés décimaux

Bonjour au-secours, papounet,
Sur quel système te bases-tu pour attendre une valeur négative ?
sur le méridien de Greenwich
.... est-ce à l'est ou à l'ouest ?

dans ce cas il faut ajouter le côté par rapport à ce méridien
éventuellement dans une autre cellule qui contiendra "O" ou "E"


à+
Philippe

Edit: voir fichier joint
 

Pièces jointes

Dernière édition:
Re : Conversion de degrés/minutes/secondes en degrés décimaux

Bonjour.

1° pouvez-vous expliquer pourquoi c'est faux ?
2° La saisie en hh:mm:ss et un format personnalisé pour l'affichage, une division par 24 petmettent de s'exonérer de la fonction (voir pj).
A vous lire,


Edit : Bonjour Papou-net, Philippe 😉
 

Pièces jointes

Dernière édition:
Re : Conversion de degrés/minutes/secondes en degrés décimaux

Re
Re,

J'ai édité le post 4 pour prendre en compte l'Ouest (Copié sur Philippe 😛)
tu aurais pu améliorer Victor !


pour faire un peu plus sérieux, le même fichier sans colonne supplémentaire

à+
Philippe
 

Pièces jointes

Re : Conversion de degrés/minutes/secondes en degrés décimaux

Merci beaucoup pour vos réponses et les fichiers joints.

Mais le fichier donne des résultats faux 😱

Essaye avec ces valeurs
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é.

Avec ton fichier 0° 34' 46" donne -0,068333333 (c'est faux 😱 ) le bon résultat est -0.579444444

Merci d'avance de bien vouloir encore m'aider un peu
 
Re : Conversion de degrés/minutes/secondes en degrés décimaux

Re,
Merci beaucoup pour vos réponses et les fichiers joints.

Mais le fichier donne des résultats faux 😱

Essaye avec ces valeurs


Avec ton fichier 0° 34' 46" donne -0,068333333 (c'est faux 😱 ) le bon résultat est -0.579444444

Merci d'avance de bien vouloir encore m'aider un peu
Pour info, dans le fichier qui donne des erreurs, la procédure n'est pas de moi, c'est la tienne !!!
je me suis contenté de résoudre le problème concernant les localisations à l'ouest
et pour cela j'ai utilisé le code donné au post#1 en l'adaptant uniquement pour le coté Ouest
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

Pour info, la question initiale était la suivante:
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é.

le fichier de Victor au post#4 donne la bonne réponse et est beaucoup plus simple d'utilisation

à+
Philippe
 
Dernière édition:
Re : Conversion de degrés/minutes/secondes en degrés décimaux

Bonjour,

Merci beaucoup pour votre temps.

Effectivement le fichier au post#4 fonctionne super bien. (j'avais 36 570 lignes a convertir 😎 )

Ma source était comme ça
+03357 (lat) 445121 (long) ou -03446(lat) 445016(long)
Pour isoler les - et les transformer en signe O dans une autre colonne n'as pas été facile 😕

Un GRAND merci pour votre aide, faire mieux qu'une fonction de Microsoft c'est quand même mieux que bien.

C'était mon premier post sur ce forum, je vais rester et revenir plus souvent.
 
Re : Conversion de degrés/minutes/secondes en degrés décimaux

Pour l'administrateur:
Ce forum sous vBulletin est particulièrement bien fait (le template est super, c'est maison ou pas ?)
Je suis développeur Php, j'ai déjà mis en place des forums et vBulletin et Invison et aussi PhpBB.
Ici il y a aussi les MOD (Hack) qui sont bien....
Ca fait un moment que je n'ais pas fait de vBulletin, mais il y a une MOD qui donne la possibilité de finaliser un post comme "résolu" c'est surement la seule chose qui manque, sinon tout est parfait.
Merci pour ce forum convivial avec des membres de bonnes qualités
 
Re : Conversion de degrés/minutes/secondes en degrés décimaux

Bonjour à tous


(...)
Ma source était comme ça
+03357 (lat) 445121 (long) ou -03446(lat) 445016(long)
(...)
Voilà un renseignement capital ! Avec une telle source, les choses deviennent simples.
VB:
Function DegDec(DegSex)
Application.Volatile
Dim NS&, SG&
    If IsNumeric(DegSex) And DegSex <> "" Then
        SG = Sgn(DegSex)
        NS = Abs(DegSex)
        DegDec = SG * (NS \ 10000 + ((NS \ 100) Mod 100 + (NS Mod 100) / 60) / 60)
    Else
        DegDec = ""
    End If
End Function


ROGER2327
#5564


Mercredi 4 Pédale 139 (Saint Michet, Idéaliste - fête Suprême Quarte)
8 Ventôse An CCXX, 0,7757h - violette
2012-W09-1T01:51:42Z
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
2 K
Réponses
7
Affichages
24 K
Compte Supprimé 979
C
Retour