Actualmente estoy enfrentando un problema que me preocupa mucho. Espero que alguien pueda ayudarme. Trabajo para una gran empresa donde se usan Office 2007 (32 bits) y Office 2010 (64 bits). Escribir macros para ser compatible a través de toda la empresa fue una tarea difícil para mí (nunca antes había programado en VBA, en realidad este foro me ayudó mucho). Mi tarea es mantener una gran tabla en una hoja compartida de Excel. Hay varias macros y varias formas de usuario. Ahora voy a descartar el problema brevemente: La hoja contiene dos columnas con formato de fecha (fecha de inicio y fecha de cierre). Ambos valores se importan a la columna de los cuadros de texto del formulario del usuario (commandbutton almuerzos MsCal -exportado a la clase- que llena esos cuadros de texto con la fecha). Lo que simplemente necesito es tener el formato de fecha como mm/dd/aaaa en ambas columnas para realizar el filtrado y otras operaciones. Cuando el trabajador actualiza estos valores y utiliza una localización diferente a la inglesa, la fecha de los EE. UU. Se ingresa como dd.mm.aaaa. Eso hace que el filtrado apropiado basado en la fecha sea imposible. Traté de alterar el formateo por:Mismo formato de fecha en varias localizaciones
UserForm1.TextBox10.Value = Format(Calendar1.Value, "mm/dd/yyyy")
pero este código se porta mal de alguna manera. En algunas máquinas funciona, en algunas de ellas no funciona. Y eso es lo que me está dando dolor de cabeza. ¿Cómo debo proceder ahora? ¿Hay alguna manera de forzar a Excel a usar el mismo formato de fecha en la hoja e ignorar la configuración de localización en Windows? Los empleados no desean cambiar la localización al inglés de los EE. UU. Porque están acostumbrados a su formato o lo necesitan para otras aplicaciones. ¿Hay alguna manera de cambiar temporalmente la localización solo cuando se abre esta hoja? Cualquier consejo será apreciado. Gracias de antemano Peter
Una fecha en una celda de Excel debe ser una fecha y no una cadena. Si establece el formato de la celda en un formato de fecha precedido por un asterisco * (que suele ser las 2 primeras opciones en la opción Formato de celdas/fecha), la fecha cambiará al formato de fecha local del usuario. Sin embargo, la celda subyacente sigue siendo un número de serie que debe ser utilizable independientemente del formato. Si necesita ingresar fechas en un cuadro de texto o convertir cadenas a fechas, entonces ese es un asunto diferente y se requiere manejo adicional. Consulte http://stackoverflow.com/questions/12495504/how-to-convert-a-string-into-date/12497237#12497237 – user3357963
@PeterT. En la tabla, la columna de fechas se formatea como texto o como fechas? – CaBieberach
Formateado como Fecha – PeterT