Llámanos al: 834 311 2100

de 8:00 a 21:00 (Lun-Sab)

Formula para Convertir Coordenadas

en August 21, 2023

Resumen: Convierta coordenadas de un formato decimal a grados o a la inversa, usando una función en Visual Basic para aplicaciones.

Palabras Clave: Coordenadas, Ubicación, Latitud, Longitud

En muchas ocasiones es útil tener una forma rápida que solo sea posible arrastrar dicha formula en una hoja de cálculo para convertir múltiples coordenadas, y finalizar, usar los datos para las siguientes tareas. Cuando se trata de muchos campos de captura obtenidos del GPS (navegador) usando pocas líneas de código en visual Basic para aplicaciones (VBA) simplificamos la tarea.

Para utilizar la función es necesario insertar un modulo en VBA, alimentarlo con dos funciones de código y guardar los cambios para convertir de un formato a otro, al volver a la celda usaremos las funciones creadas.

= conviertedecimal(Celda)Convierte del formato decimal al formato, Grados, minutos y segundos(º ' '')

Function Conviertedecimal(Decimal_Deg) As Variant
With Application
        degrees = Int(Decimal_Deg)
        minutes = (Decimal_Deg - degrees) * 60
        seconds = Format(((minutes - Int(minutes)) * 60), "#0.0000")
        Conviertedecimal = " " & degrees & "°" & Int(minutes) & "' " & seconds + Chr(34)
End With
End Function
 Resultado de la función
Ejemplo

Cómo se aprecia en el ejemplo se convierte de un formato decimal a un formato de grados, minutos y segundos.

Del mismo modo, si lo que se desea es el efecto invertido, tomar los valores de grados, minutos y segundos a decimal, usamos la función que creamos en el modulo de VBA.

 =Conviertegrados(Celda) | Convierte el Formato Grados, Minutos y segundos (° ' """) al formato decimal

Function Conviertegrados(Degree_Deg As String) As Double
Dim degrees As Double
Dim minutes As Double
Dim seconds As Double
       degrees = Val(Left(Degree_Deg, InStr(1, Degree_Deg, "°") - 1))
       minutes = Val(Mid(Degree_Deg, InStr(1, Degree_Deg, "°") + 2, InStr(1, Degree_Deg, "'") - InStr(1, Degree_Deg, "º") - 2)) / 60
seconds = Val(Mid(Degree_Deg, InStr(1, Degree_Deg, "'") + 2, Len(Degree_Deg) - InStr(1, Degree_Deg, "'") - 2)) / 3600

Conviertegrados = Degrees + Minutes + Seconds
End Function

 Resultado de la función
Ejemplo de uso

Una vez probada la función, simplemente arrastramos para conocer los resultados de todas nuestras coordenadas capturadas, y usarlas en cualquier software para procesarlas.

Arrastrando la Función

Conclusión:

Con pequeñas líneas de código es sencillo la simplificación de la tediosa tarea de convertir coordenadas.

CATEGORIAS

VOLVER ARRIBA