Note: The other languages of the website are Google-translated. Back to English

Comment convertir des degrés décimaux en degrés minutes secondes dans Excel?

Parfois, vous pouvez avoir une liste de données affichées sous forme de degrés décimaux dans une feuille de calcul, et maintenant vous devez convertir les degrés décimaux en degrés, minutes et secondes au formatage comme indiqué dans les captures d'écran suivantes, comment pouvez-vous obtenir la conversation rapidement dans Excel?

Convertir des degrés décimaux en degrés, minutes, secondes avec VBA

Convertir des degrés, minutes, secondes en degrés décimaux avec VBA

Onglet Office Activez la modification et la navigation par onglets dans Office et simplifiez considérablement votre travail ...
Kutools for Excel résout la plupart de vos problèmes et augmente votre productivité de 80%
  • Réutiliser n'importe quoi: Ajoutez les formules, les graphiques et tout autre élément les plus utilisés ou les plus complexes à vos favoris et réutilisez-les rapidement à l'avenir.
  • Plus de 20 fonctionnalités de texte: Extraire le numéro de la chaîne de texte; Extraire ou supprimer une partie des textes; Convertissez les nombres et les devises en mots anglais.
  • Outils de fusion: Plusieurs classeurs et feuilles en un seul; Fusionner plusieurs cellules / lignes / colonnes sans perdre de données; Fusionner les lignes en double et la somme.
  • Outils de fractionnement: Diviser les données en plusieurs feuilles en fonction de la valeur; Un classeur vers plusieurs fichiers Excel, PDF ou CSV; Une colonne à plusieurs colonnes.
  • Coller sauter Lignes cachées / filtrées; Compte et somme par couleur d'arrière-plan; Envoyez des e-mails personnalisés à plusieurs destinataires en masse.
  • Super filtre: Créez des schémas de filtres avancés et appliquez-les à toutes les feuilles; Sort par semaine, jour, fréquence et plus encore; Filtre par gras, formules, commentaire ...
  • Plus de 300 fonctionnalités puissantes; Fonctionne avec Office 2007-2021 et 365 ; Prend en charge toutes les langues; Déploiement facile dans votre entreprise ou organisation.

flèche bleue bulle droite Convertir des degrés décimaux en degrés, minutes, secondes avec VBA

Veuillez suivre les étapes ci-dessous pour convertir les degrés décimaux en degrés, minutes et secondes avec le code VBA.

1. Tenez ALT bouton et appuyez F11 sur le clavier pour ouvrir un Microsoft Visual Basic pour Application fenêtre.

2. Cliquez insérer > Moduleet copiez le VBA dans le module.

VBA: Convertissez le degré décimal en degré, minutes et secondes

Sub ConvertDegree()
'Update 20130815
Dim Rng As Range
Dim WorkRng As Range
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
For Each Rng In WorkRng
    num1 = Rng.Value
    num2 = (num1 - Int(num1)) * 60
    num3 = Format((num2 - Int(num2)) * 60, "00")
    Rng.Value = Int(num1) & "°" & Int(num2) & "'" & Int(num3) & "''"
Next
End Sub

3. Cliquez cours bouton ou appuyez sur F5 pour exécuter le VBA.

4. Une boîte de dialogue s'affiche à l'écran et vous pouvez sélectionner les cellules que vous souhaitez convertir. Voir la capture d'écran:

5. Cliquez OK, puis les données sélectionnées sont converties en degrés, minutes et secondes. Voir la capture d'écran:

Conseil : L'utilisation du code VBA ci-dessus perdra vos données d'origine, vous feriez donc mieux de copier les données avant d'exécuter le code.


flèche bleue bulle droite Convertir des degrés, minutes, secondes en degrés décimaux avec VBA

Parfois, vous souhaiterez peut-être convertir les données au format degrés / minutes / secondes en degrés décimaux, le code VBA suivant peut vous aider à le faire rapidement.

1. Tenez ALTouche T et appuyez sur F11 sur le clavier pour ouvrir une fenêtre Microsoft Visual Basic pour Application.

2. Cliquez insérer > Moduleet copiez le VBA dans le module.

VBA: Convertissez le degré, les minutes et les secondes en degré décimal

Function ConvertDecimal(pInput As String) As Double
'Updateby20140227
Dim xDeg As Double
Dim xMin As Double
Dim xSec As Double
xDeg = Val(Left(pInput, InStr(1, pInput, "°") - 1))
xMin = Val(Mid(pInput, InStr(1, pInput, "°") + 2, _
             InStr(1, pInput, "'") - InStr(1, pInput, _
             "°") - 2)) / 60
xSec = Val(Mid(pInput, InStr(1, pInput, "'") + _
            2, Len(pInput) - InStr(1, pInput, "'") - 2)) _
            / 3600
ConvertDecimal = xDeg + xMin + xSec
End Function

3. Enregistrez le code et fermez la fenêtre, sélectionnez une cellule vide, par exemple, la cellule A1, entrez cette formule = ConvertDecimal ("10 ° 27 '36" "") ("10 ° 27 '36" "" correspond au degré que vous souhaitez convertir en degré décimal, vous pouvez le modifier selon vos besoins), puis cliquez sur Entrer bouton. Voir les captures d'écran:


Articles relatifs

Commentaires (16)
Pas encore de notes. Soyez le premier à évaluer!
Ce commentaire a été minimisé par le modérateur sur le site
il y a une erreur dans le code que j'ai essayé de convertir 26°10'55.416" en utilisant ce code qui donne 26.00139 qui devrait être 26.18206 (Calculé et Vérifié. Veuillez me faire savoir si quelqu'un connaît la raison.
Ce commentaire a été minimisé par le modérateur sur le site
[citation] il y a une erreur dans le code que j'ai essayé de convertir 26°10'55.416" en utilisant ce code qui donne 26.00139 qui devrait être 26.18206 (Calculé et Vérifié. Veuillez me faire savoir si quelqu'un connaît la raison.Par Rajansinh Zala[/quote] Il semble que le code attende un espace après les symboles ° et '. 26° 10' 55.416" donne la bonne réponse. Vous pouvez entrer votre entrée dans une cellule (par exemple A1) et obtenir le résultat dans une autre cellule en utilisant la formule =ConvertDecimal(A1). Ceci est pratique si vous avez plusieurs nombres à être converti.
Ce commentaire a été minimisé par le modérateur sur le site
Très utile. Merci.
Ce commentaire a été minimisé par le modérateur sur le site
La chose la plus importante à réaliser est que vous ne pouvez pas simplement utiliser un exposant et une lettre minuscule o pour le symbole du degré - cela peut être évident pour certains, mais pas pour moi. J'ai essayé la lettre en exposant o et cela n'a pas fonctionné, j'ai supprimé la lettre en exposant o et utilisé Alt 0176 pour le symbole de degré réel et cela a fonctionné !! Je ne comprends pas pourquoi après les secondes, il y a des ensembles supplémentaires de guillemets doubles? 36""") alors que dans le commentaire suivant, si l'on utilise simplement =ConvertDecimal(A1), un seul ensemble de guillemets est utilisé pour les secondes. Bizarre, nous pouvons utiliser des guillemets simples et doubles et la chose fonctionne pendant des minutes et des secondes mais la lettre en exposant o n'est-ce pas? Pour vérifier 27/60 = .45 smf 36/3600 = .01 ajouter les deux = .46 et ajouter cela aux degrés = 10.46 degrés. Espérons que cela aide les autres? Mort
Ce commentaire a été minimisé par le modérateur sur le site
J'ai trouvé ce code très utile. Super truc!
Ce commentaire a été minimisé par le modérateur sur le site
Je veux tracer les positions sur une carte et nous ne nous inquiétons pas de N, S, E ou W. Je suis sûr que ceux-ci pourraient être ajoutés avec des déclarations "if". Je viens d'utiliser une ligne de fonctions très simple dans la feuille de calcul Excel. Je veux passer de degrés (décimal) à degrés, secondes (décimal) Changer les valeurs négatives en positives car je sais dans quels hémisphères je me trouve. Pour moi, la cellule E4 contenait la cible Lat ou Long (décimal). C'est un peu plus facile que de mettre du code VBA et peut être agrandi pour faire DD, MM, SS =CONCATENATE(TRUNC(ABS(E4)),"°",FIXED((ABS(E4)-TRUNC(ABS(E4) )))*60,2),"'")
Ce commentaire a été minimisé par le modérateur sur le site
fonctionne très bien, mais comment adapter le code pour obtenir plus de chiffres pendant quelques secondes ?
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour, j'ai utilisé le script pour convertir décimal en DMS mais le code est erroné quelque part car il s'est avéré 37.856908, -120.912469 à 37D 51M 25S, -121D 5M 15S C'est loin... Quelqu'un a une solution pour ça ?
Ce commentaire a été minimisé par le modérateur sur le site
Je ne sais pas ce qui ne va pas avec le code dans le message d'Ernie, mais c'est ce que j'utilise pour convertir les degrés décimaux en degrés DMS dans la feuille de calcul sans utiliser VB. La référence à la cellule E33 est la cellule contenant la valeur des degrés décimaux. =CONCAT(FIXE(INT(B32), 0) , "°", FIXE(((B32 - INT(B32)) * 60), 0), "'", FIXE(((B32 - INT(B32) - INT(B32 - INT(B32))) * 3600), 0 ,TRUE), """) Bonne chance.
Ce commentaire a été minimisé par le modérateur sur le site
HI CORNY, NE TRAVAILLE PAS POUR MOI, EXCEL N'ACCEPTE PAS LA FONCTION ..... QU'EST-CE QUE LE MAL? POUVEZ-VOUS M'AIDER?
Ce commentaire a été minimisé par le modérateur sur le site
s'il vous plaît, je veux que vous m'aidiez et écriviez un programme informatique sur papier pour convertir la décimale de degré en degré minute et seconde. 317.5986740026 de ahans.
Ce commentaire a été minimisé par le modérateur sur le site
étape 1, multiplier les nombres après la virgule par 60 (0.5986740026*60)minutes = 35.92044015 signifie 35 menthes
spet 2, multiplier la décimale par minute soit 0.9204401*60=55.2264
donc 317 degrés 35 minutes 55 sec
Ce commentaire a été minimisé par le modérateur sur le site
Fonctionne comme un champion ! Merci d'avoir partagé!!!
Ce commentaire a été minimisé par le modérateur sur le site
Vérifiez vos résultats. ce code est faux.
Ce commentaire a été minimisé par le modérateur sur le site
Le code a un suppose qu'il y a un espace après ° et '. Changez les 2 en 1 dans le code pour le résoudre.
Fonction ConvertDecimal(pInput As String) As Double
'Mise à jour du 20140227
Dim xDeg As Double
Dim xMin As Double
Dim xSec en tant que double
xDeg = Val(Gauche(pEntrée, InStr(1, pEntrée, "°") - 1))
xMin = Val(Mid(pInput, InStr(1, pInput, "°") + 1, _
InStr(1, pInput, "'") - InStr(1, pInput, _
"°") - 1)) / 60
xSec = Val(Mid(pInput, InStr(1, pInput, "'") + _
1, Len(pEntrée) - InStr(1, pEntrée, "'") - 1)) _
/ 3600
ConvertDecimal = xDeg + xMin + xSec
Fonction de fin
Ce commentaire a été minimisé par le modérateur sur le site
Résultats de calcul INCORRECTS... 29°30'13" 34°55'4" ---> 29.00083333 34.08333333
Il n'y a pas encore de commentaires postés ici
Laisser vos commentaires
Publier en tant qu'invité
×
Évaluez cet article:
0   Personnages
Emplacements suggérés

Nous suivre

Copyright © 2009 - www.extendoffice.com. | Tous les droits sont réservés. Alimenté par ExtendOffice. | | Plan du site
Microsoft et le logo Office sont des marques commerciales ou des marques déposées de Microsoft Corporation aux États-Unis et / ou dans d'autres pays.
Protégé par Sectigo SSL