Convertir coordonnées décimales en ° et minutes

Bonjour à tous.

J'ai encore une fois besoin de votre précieuse aide.

Voilà le problème. J'ai 2 colonnes (longueurs variables mais toujours avec des valeurs) avec des coordonnées en décimales.

Je souhaiterais les transformer pour obtenir des valeurs en degrés et minutes de ce type: "degré""minute""N ou S" ou bien "degré""minutes""E ou O".

Exemple:

colonne A Colonne B Colonne A Colonne B

41.505 140.6911111 4105N 14006E

50.65611111 -5.917222222 5005S 05813O

24.76638889 -113.7061111 résultat espéré

24.98805556 53.24972222 ------------------->

Bien sur les valeurs des résultats sont fausses puisque je ne connais pas la conversion

L'idéal serait de les convertir directement dans les mêmes colonnes mais si je dois créer une colonne C et D puis supprimer la A et B, pas de soucis.

J'espère qu'un d'entre m'aura compris et saura m'expliquer.

Merci, à bientôt

Merci mais je veux que la conversion se fasse dans mon fichier excel via macro.

J'ai trop de positions à rentrer pour les faire avec un site internet un par un...

Re,

bienvenue sur le forum, les liens sont uniquement la pour avoir la méthode de calcul, et tenter de faire quelque chose en excel.

Mais au vu de votre réaction j'imagine que vous vous attendez à un résultat fini sans plus de recherche de votre part...

Merci de nous proposer un fichier avec une trame de ce que vous désirez et l’aide souhaitée viendra

Cdt

Didier

Je crois surtout, au vu de votre réaction, que vous n'avez pas envie d'aider les gens qui posent des questions sur ce forum.

Si votre action consiste à balancer des liens Internet, n'importe qui peut aller sur Google pour ça.

Donc comme je ne suis pas un fainéant comme vous vous permettez de le penser, je me suis creusé la tête et je suis arriver au résultat voulu, à savoir:

Sub dectomin()

With Range("e:f")

.NumberFormat = "0.000000"

.Value = .Value

End With

Dim POSIT As String

L = 2

While Cells(L, 5) <> ""

If IsNumeric(Cells(L, 5).Value) And IsNumeric(Cells(L, 6).Value) Then

Cells(L, 13).Value = DectoMinN(Cells(L, 5).Value) & "/" & DectoMinW(Cells(L, 6).Value)

L = L + 1

Else

Rows(L).Delete

End If

Wend

End Sub

Public Function DectoMinN(ByVal LAT As Double) As String

lat1 = Int(Math.Abs(LAT))

LAT2 = Math.Round(((Math.Abs(LAT) - lat1) * 60), 0)

If LAT2 = 60 Then

lat1 = lat1 + 1

LAT2 = 0

End If

slat = Replace(ajustlong(Replace(Str(lat1), " ", ""), 2) & ajustlong(Replace(Str(LAT2), " ", ""), 2), " ", "")

If LAT >= 0 Then

slat = slat & "N"

Else

slat = slat & "S"

End If

DectoMinN = slat

End Function

Public Function DectoMinW(ByVal lon As Double) As String

Dim lon1, lon2 As Double

Dim slon As String

lon1 = Int(Math.Abs(lon))

lon2 = Math.Round(((Math.Abs(lon) - lon1) * 60), 0)

If lon2 = 60 Then

lon1 = lon1 + 1

lon2 = 0

End If

slon = Replace(ajustlong(Replace(Str(lon1), " ", ""), 3) & ajustlong(Replace(Str(lon2), " ", ""), 2), " ", "")

If lon >= 0 Then

slon = slon & "E"

Else

slon = slon & "W"

End If

DectoMinW = slon

End Function

Public Function MintoDecN(ByVal LAT As String) As Double

If Left(LAT, 5) Like "####[A-Z]" Then

MintoDecN = Val(Left(LAT, 2)) + (Val(Mid(LAT, 3, 2)) / 60)

If UCase(Mid(LAT, 5, 1)) = "S" Then

MintoDecN = -MintoDecN

End If

Else

MintoDecN = 0

End If

End Function

Public Function MintoDecW(ByVal lon As String) As Double

If Left(lon, 6) Like "#####[A-Z]" Then

MintoDecW = Val(Left(lon, 3)) + (Val(Mid(lon, 4, 2)) / 60)

If UCase(Mid(lon, 6, 1)) = "W" Then

MintoDecW = -MintoDecW

End If

Else

MintoDecW = 0

End If

End Function

Public Function ajustlong(ByVal chaine As String, ByVal long1 As Integer) As String

Dim t As Integer

If Len(chaine) < long1 Then

For t = Len(chaine) + 1 To long1

chaine = Str(0) & chaine

Next

End If

ajustlong = chaine

End Function

Je vous remercie quand même pour avoir au moins répondu à mon mail.

J'espère que cette macro servira à d'autres.

Cordialement

Jolie travail, de mon côté je commençais un tableau convertisseur avec les formules des liens, je le finirai plus par curiosité que par nécessité. Bonne continuation a vous

CDT

Didier

Rechercher des sujets similaires à "convertir coordonnees decimales minutes"