Jump to content

Mapa Mundial con relojes marcando las horas en Excel


Recommended Posts

Subo adjunto con el que he pasado las horas porque quiero saber, de un vistazo, a qué horas se levantan y se acuestan mis amigos, en particular los amigos del foro.

Lo que me ha costado unas horas más es conseguir meter un fichero de 6 megas en un zip de menos de 97.7 KB. Al final ocupa 78.4 KB a base de crear dinámicamente los relojes, las ciudades y conectarse a Internet para descargar el mapa mundial.

Tengo que dar las gracias por la inspiración a George Lungu y su tutorial de cómo hacer un reloj analógico en Excel:

En alguna hora de estas vacaciones explicaré en mi blog cómo lo hice.

Felices Fiestas a tod@s.

EDITADO: Adjunto 2ª versión del Mapa con relojes mejorados y con geolocalización de las ciudades del mundo.

2ª EDICIÓN: La última versión de Relojes Mundiales 2.0 se puede descargar desde el post #20

He escrito varios temas explicando cómo hacerlos en mi blog:

RelojesMundialesPW1.zip

RelojesMundialesPW2.rar

Link to post
Share on other sites

Quisiera mejorar el World Clock por lo que necesito recibir comentarios con los test y chequeos de neverdelimon1, verzulsan, Gerson y los que os bajéis el fichero del https://www.ayudaexcel.com/foro/f64/mapa-mundial-con-relojes-marcando-las-horas-en-excel-15530/#post78598.

Las características principales de este mapa de relojes mundiales son:

  • Mapa mundial con 32 relojes analógicos e infinitos relojes digitales
  • Relojes en sus zonas horarias y con ajuste del horario de verano
  • Actualización de los relojes al Tiempo Universal real UTC y GTM/Zulu
  • 24 relojes analógicos en las 24 zonas horarias
  • 10 relojes analógicos programables con listas de amigos
  • Relojes digitales de 24 horas en cualquier localización en el mapa
  • 34 ciudades asociadas a los 34 relojes analógicos
  • Lista de más de 650 ciudades de 230 países
  • Enlaces a información completa de cada ciudad
  • Creación de más ciudades sobre el mapa
  • Noche de estrellas fugaces

La sincronización de los relojes se hace con los servidores de The World Clock – Time Zones

El código es libre y, si quieres hacer modificaciones menores y subirlo al foro, debes seguir estos pasos:

  1. Ejecuta la macro privada VaciaMapa de ThisWorkbook, dejando 5 formas en la hoja "Mundo": 1 mapa, 2 relojes analógicos, 1 reloj digital y 1 ciudad.
  2. En la hoja "Ciudades" selecciona el rango "A:C" y borra todo (no elimines las columnas) contestando No a la pregunta.
  3. Guarda como otro fichero de unos 300 KB
  4. Comprímelo como zip o rar para conseguir menos de 97.7 KB
  5. Súbelo al foro para compartirlo con todos.

Link to post
Share on other sites

Hola Pedro, ayer no te contesté por que lo miré por encima. Creo que has realizado un trabajo excelente. Lo volveré a mirar cuando termine una implementacion en un proyecto que ando metido, por eso no lo pude mirar en profundidad por que el codigo que has usado es muy extenso.

Cuando lo vuelva a mirar en mayor profundidad te comentare lo que vaya notando, Te comento por encima lo que noté ayer:

En excel 2000 y 2003 casca, solo va en versiones iguales o superiores a 2007, (Quizas deberias ponerle un detector de version para que solo intentara arrancar en caso de versiones aceptadas, creo que tengo el codigo por algun lado).

Desde mi punto de vista, creo que esta sobresaturado de eventos, mi ordenador es relativamente nuevo y en el tiran bien la mayoria de los juegos modernos, aun asi, tu hoja tiene demasiado parpadeo, lag entre procesos, como si le costara tirar del carro. Si es solo de pruebas esta bien que sea asi, pero quizas no le vendrian mal un par de restricciones segun un panel de control que solo activara lo que necesitas asi liberas la hoja de procesos innecesarios.

Ya te digo que todo lo de arriba esta basado en unos minutos que estuve mirandolo y no pude comprender bien la utilidad, por lo que prefiero esperar a mirarlo detenidamente para darte una respuesta mas constructiva por que tiene realmente muy buena pinta.

Un saludo amigo

Link to post
Share on other sites

Gracias verzulsan por tu feedback. :)

El comprobador de compatibilidad de Excel 2010 me dice que lo es con Excel 2003 con pérdidas menores de fidelidad.

¿Qué diablos entenderá por fidelidad Micro$oft Excel?

¡No lo mismo que entendemos nosotros! :mad:

No te extrañen los lags iniciales mientras se construyen las formas de los relojes y las ciudades. De todas maneras es una primera versión Beta para ser testeada en diferentes rincones del Planeta Tierra ¡que no es tu caso! :mad:

Realmente le he prestado más atención a conseguir reducirlo en tamaño, para subirlo al foro, que en la gestión de los eventos. Lo que no quiero es reducir el número minimo de relojes y ciudades mostradas (34).

Como buen probador que eres, cuando tus propios proyectos te permitan horas libres, ¿por qué no me indicas dónde casca para seguirle la pista? :P

Link to post
Share on other sites

Pedro

Que gran trabajo! mi estimado, por lo que debo felicitarte

Lo he probado en 2007 y no existe ningun parpadeo, con respecto a 2003, resultan algunos errores como: "Expresion demasiado compleja" y "No se puede asignar la propiedad XValues de la clase de series", este ultimo cuando se ubica el cursor encima del mapa

Saludos a todos

Link to post
Share on other sites

Hola master Pegones

Primero que todo felicitarte doblemente, una felicitacion es por el magnifico trabajo que haz hecho y la otra pues una cordial felicitación de año nuevo.

Como casi no habia entrado al foro por eso apenas he podido postear mi test.

Lo he probado en excel 2010 y funciona correctamente por un rato, después de unos 10 min. a veces + a veces -, aparece un error que dice expresión demasiado compleja, error 16 en tiempo de ejecución.

Application.ScreenUpdating = False

With RelojDigital

.Top = Y + Mapa.Top

voy al depurador oprimo F8 y eureka avanza a la siguente linea, quizás se debe efectivamente a los procesos que tiene y que se le hace un poco 'pesado a excel' si bien desde vba poco o nada podemos hacer de forma nativa, quizás haciendo uso de funciones api podemos implementar lo que comenta nuestro amigo verzulsan a quien aprovecho para saludar.

Otra cosa que ocurre es que los botones de opción, entran y salen del mapa todos en la parte norte, no se si sea el comportamieno predefinido, recuerdo que la primera vez que abri el archivo no ocurria eso,pero ahora me he topado con ello.

Me voy a meter en detalle al código y ya te expondre si hay algo en lo que te pueda aportar.

saludos, un abrazo de año nuevo

Link to post
Share on other sites

Hola neverdelimon1, ¿no te has preguntado qué figura tienen los botones de opción moviéndose al norte del mapa?

Lo que se han perdido, por perder algún evento, son las coordenadas de las ciudades que representan esos botones por lo que tendrás que abrir el archivo original y copiar el rango Relojes!$P$3:$Q$36

Lo he probado en excel 2010 y funciona correctamente por un rato, después de unos 10 min. a veces + a veces -, aparece un error que dice expresión demasiado compleja, error 16 en tiempo de ejecución.

Me voy a meter en detalle al código y ya te expondre si hay algo en lo que te pueda aportar.

saludos, un abrazo de año nuevo

Dependiendo de la memoria RAM del equipo, funciona más o menos tiempo ya que por cada segundo que pasa ocupa 170 KB más (en una hora unos 600 MB) y ¡eso no lo tengo controlado!

¿Alguien me puede ayudar a reducir el consumo de memoria?

Link to post
Share on other sites

Hola Pedro, varias cosillas. He estado analizando el archivo y lo que te comenté del scroleo de la pantalla me ocurre debido al evento Application.ScreenUpdate, lo he quitado de en medio y me va perfecto sin scrolear, supongo que se deberá al equipo que uses, version, Sistema operativo etc, unos lo notaran, otros no, pero a mi con eso ya se me quita.

Otra cosilla. El tema de la memoria ocurre en la funcion ValorReloj. He marcado en rojo las lineas que te estan creando el problema (quizas se me haya escapado alguna) y en verde la importancia de consumo. Cada vez que la celda A1 de la hoja "relojes" se actualiza con Now, Excel pide 250Kb mas de memoria a razon de 1 megabyte cada 4 actualizaciones. No se exactamente que tienes asociado a esa celda pero solo ocurre con esa. Revisa el codigo a partir de estas lineas a ver si consigues averiguar algo.

Sub ValorReloj(Optional GMT As String, Optional valGMT As Single, Optional fila As Long = 0)
Dim valTiempo As Date
Dim strGMT As String

If ActiveSheet.Name <> "Mundo" And _
ActiveSheet.Name <> "Relojes" Then Exit Sub

valTiempo = ConvertLocalToGMT(Now, True)

With Sheets("Relojes")
.Range("A1") = Now

[COLOR="Green"]'Esta linea consume unos 250kb/s[/COLOR]
[COLOR="Red"]'.Range("C1") = valTiempo[/COLOR]
End With

With Sheets("Mundo")
If GMT = "" Then
valGMT = .Range("C55").Value
strGMT = ValorGMT(valGMT)
Else
strGMT = GMT
End If
valTiempo = valTiempo + valGMT / 24

[COLOR="Green"]'Esta linea consume 4kb/s[/COLOR]
[COLOR="Red"]'.RelojDigital.Value = strGMT & " " & TimeValue(valTiempo) & " " & DateValue(valTiempo)[/COLOR]

If fila = 0 Then
fila = .Range("C56").Value
If fila = 0 Then
fila = valGMT + 14

[COLOR="Green"]'Esta linea consume 40-50kb/s[/COLOR]
[COLOR="Red"]'CopiaReloj "Reloj0", fila, strGMT[/COLOR]
Else
fila = fila + 2

[COLOR="Green"]'Esta linea consume 40-50kb/s[/COLOR]
[COLOR="Red"]'CopiaReloj "Reloj0", fila[/COLOR]
End If
Else

[COLOR="Green"]'Esta linea consume 40-50kb/s[/COLOR]
[COLOR="Red"]'CopiaReloj "Reloj0", fila[/COLOR]
End If
End With
End Sub[/CODE]

Sustituye la funcion por esa, veras como ya deja de consumir, asi vas haciendo pruebas con cada linea por separado.

Un saludo amigo

Link to post
Share on other sites

Hola

He seguido haciendo pruebas y basto con parar el timer y volverlo a iniciar en cuanto abre el libro es decir paro el timer cuando se termina de cagar el libro y lo reinicio y listo ya no me dio ningun problema, lo deje trabajando mas de dos horas y todo bien, en cuanto al consumo de memoria lo más que me alcanzo a consumir fueron 36 000 KB y de ahi bajaba por ejemplo hasta el rango de 29 000 kB volvia a subir pero nuevamente no rebasaba los 36 000 KB, por mi parte me parece que el timer es el que le esta pesando a excel, ya que por experiencia en versiones anteriores cuando se usa muy recursivamente tal método Excel se torna muy inestable, quizás si usamos el timer de las funciones api podremos evitar los colapsos, voy a intentar con ese cambio y posteriormente comento.

Aprovecho para saludar a mi buen amigo verzulsan.

saludos cordiales

Link to post
Share on other sites

Los Reyes Magos necesitan ayuda para llegar a todas las latitudes, con sus distintas zonas horarias, y llevar sus regalos a los niños.

Los amigos del foro podéis ayudarles contestando a la siguiente pregunta de magia:

estrella.jpg

¿Qué hay que hacer para que salga la Estrella en este Mapa Mundial (descárgalo aquí)?

Responde a este mensaje con tu respuesta.

Link to post
Share on other sites

¿Ninguno de los 70 foreros que se han descargado este

puede ayudar a los Reyes Magos en su viaje, guiados por la Estrella de la Navidad?

hx82md.jpg

La estrella está formada con los botones de opción que localizan a las ciudades.

Repito la pregunta:

¿Qué hay que hacer para que salga esta Estrella en el mapa de relojes mundiales?

¡Quedan 2 días para ayudar a los Reyes Magos!

Link to post
Share on other sites

Hola Master pegones

Acabo de decubrir algo jejejejeje, recuedas que te consulte sobre el comportamiento que me sucedia en la macro? en el que al momento de abrir el libro se movian en el norte los botones de opcion, entrando y saliendo, bueno pues ya le vi la forma y es la estrella de la que hablas, jejejejejeje, tiene asociado un sub, en mi caso no tengo que hacer nada porque desde la apertura con el evento se desencadena.

Sub ArrancaEstrella()...

Saludos cordiales

Link to post
Share on other sites
Acabo de decubrir algo jejejejeje, recuedas que te consulte sobre el comportamiento que me sucedia en la macro? en el que al momento de abrir el libro se movian en el norte los botones de opcion, entrando y saliendo, bueno pues ya le vi la forma y es la estrella de la que hablas, jejejejejeje, tiene asociado un sub, en mi caso no tengo que hacer nada porque desde la apertura con el evento se desencadena.

Never, ahora que has visto la forma de la estrella y cómo se mueve cuando abres el archivo ¡o lo activas!, ya que ArrancaEstrella se llama en:

Sub Workbook_Activate()
...
ArrancaEstrella
...
End Sub[/CODE]

Tu respuesta es la fácil, pero hay otra forma de arrancar la estrella, por lo que la pregunta está medio contestada.

[i]A ver si eres capaz de contestar qué otra manera hay de que aparezca la estrella [b]¡sin mirar el código VBA![/b][/i]

Link to post
Share on other sites

Hola master pegones

En mi caso se activa solito, lo cual resulta obvio puesto que esta asociado al evento activate del libro el cual se produce una vez abierto y cargado.

Creo que me voy a tener que conformar con la respuesta medio contestada :-( lo que pasa que intente dando clics con el boton derecho y mas experimentos pero me sale el error de que la expresion es demasiada compleja y de ahi ya no puedo hacer nada.

saludos cordiales

Link to post
Share on other sites

Hola a todos; amigos: pegones, neverdelimon (los dos 1 [de hecho todos los amigos de aqui son 1, jejeje]) pues yo, su humilde servidor y amigo, la única respuesta que encontre para pegones respecto a tu pregunta ¿Qué hay que hacer para que salga esta Estrella en el mapa de relojes mundiales? a horas de que lleguen los Reyes Magos, es: descargar tu última versión y abrirla. Y ahora, espero que si no fuese esta tu respuesta a la pregunta, la digas ya que ya estoy a punto de volverme el hombre sin uñas, jajaja. Bueno amigos míos que tengan un excelente día y que la magia de este mismo tambien este presente en nuestros aportes, dudas y soluciones a la programación en excel durante todo el año.

Los saludo desde la ciudad de México, D.F.

Link to post
Share on other sites

Hola Martín, siento decirte lo mismo que a neverdelimon1.

Hay otra respuesta posible pero no funciona en Excel 2003:

Creo que me voy a tener que conformar con la respuesta medio contestada :-( lo que pasa que intente dando clics con el boton derecho y mas experimentos pero me sale el error de que la expresion es demasiada compleja y de ahi ya no puedo hacer nada.

Siento que sólo funcione en Excel 2007 y 2010, por lo que espero respuestas de los foreros que los tengan instalados.

A los que tengan Excel 2003 en su perfil les admito buscar la respuesta analizando el código de los módulos VBA.

P.D.: neverdelimon1, en un mensaje anterior dijiste que lo probaste en Excel 2010 ¿con qué versión te falla?

Link to post
Share on other sites

Hola master pegones

En excel 2010 funciona bien, hasta que comienza uno a dar clics sobre el mapa y se produce el evento mouse move, que es cuando se produce el error.

Y las manecillas no se aprecian tampoco en excel 2010

Creo que me tendre que conformar en esperar si alguien da con el truco para que salga la estrella, ojala que aparezca un rey mago

saludos cordiales

Link to post
Share on other sites

Never, lamento que no veas las manecillas ¿cuáles, las de segundos? y, sobre todo, que tengas problemas con el evento MouseMove.

Por si te sirve de ayuda, prueba con la 2ª versión de este Mapa que voy a subir al Post #1

Incluye refresco mejorado de los relojes y geolocalización de las ciudades del mundo.

Espero que con esta versión haya alguna respuesta al truco para que salga la estrella.

¡Aunque sea tarde para los Reyes Magos!

Link to post
Share on other sites

Como nadie ayudó a los Reyes Magos, tengo que publicar la respuesta.

La estrella sale intentando crear en el mapa la ciudad de Bethlehem o Belén.

Búscala en la hoja Ciudades o con la columna R de la hoja Relojes.

Anuncio que acabo de publicar información sobre la versión 2 del mapa en mi blog:

desde donde se puede descargar, siendo compatible con Excel 2007 y 2010.

La versión 2.0 cuenta con tres nuevas características:

  • Mapa Mundial con días y noches actualizado cada 15 minutos
  • Traducciones al español y al inglés
  • No aparecen estrellas ¡ya pasó el Día de Reyes!

RelojesMundialesPW20dinamico.jpg

Link to post
Share on other sites
  • 3 weeks later...

He publicado en mi blog cómo se hace la

Al final de este vídeo se ven las manecillas de todos los relojes moviéndose al unísono:

Sólo lo he probado en Excel 2010 y los amigos me dicen que en Excel 2007 el proceso es muy lento y en un segundo no le da tiempo a refrescar los relojes y se emplean funciones que no soporta Excel 2003.

Son muy gratificantes las 1000 visitas que ha tenido este tema en un mes.

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


  • Posts

    • Nunca debes utilizar los textbox, la función Val(), ni la función Format() en los cálculos, utiliza las variables y las funciones de conversión del tipo adecuado. He añadido un pequeño calendario.   PRUEBA1.xlsm
    • Hola @Greysi! Pude armar este listado en base a la información contenida en esta página. El Listado parece bastante completo (47.940 ciudades), al margen de ciertas excepciones (como Argentina que solo tiene 38 ciudades jajajaja) y contiene muchos nombres en inglés. Espero te sirva! Abrazo! Paises-Estados-Ciudades.xlsx
    • el inconveniente es , que deseo ingresar los datos en los textbox con separador de miles y que me ejecute los cálculos correspondientes 
    • gracias por la atención prestada. ingreso un valor en un textboxt (credito), y en otro le coloco los dias en que se va a demorar en devolverlo calculando asi +PRUEBA1.xlsm un interes de el 10% 
    • Saludos BigPetroman, te comento, el archivo que bajaste no tiene la modificacion, ya que cuando lo subi no tenia idea de como hacerlo. Despues de subir el archivo, busque informacion sobre el siguiente comentario que realizaste. Y logre hacer que funcionara, asi que puse el codigo de lo que habia hecho para que me dieran su opinion. Aunque el codigo realiza la validacion, no funciona del todo como yo queria. Ya que lo logico seria que al capturar el serial, haga la validacion y muestre un mensaje indicando que el serial ya esta auditado. Pero, la validacion, o aviso de serial ya auditado, lo muestra despues de apretar el boton "Anotar Entrada" De todos modos, anexo el archivo para que veas lo que logre. Los seriales los tomo de la Hoja "Laptop", asi que si el serial esta en esa hoja, no deja ingresar el valor en la Hoja "Reg. N_Auditados". Es decir, hace bien el trabajo... Agradecido de antemano, y pido disculpas si mi comentario genero confusion. Equipos No Auditados.xlsm
  • Recently Browsing

    No registered users viewing this page.

×
×
  • Create New...

Important Information

Privacy Policy