Importación campos de fecha |
Responder |
Autor | |
SkaryBlondi
Habitual Unido: 24/Octubre/2020 Localización: Asturias Estado: Sin conexión Puntos: 89 |
Tema: Importación campos de fecha Enviado: 10/Diciembre/2020 a las 10:31 |
Buenos días Seguro que es un tema viejo, pero aunque he encontrado una solución, quería ver si hay una opción más óptima con los bailes de DIA y MES entre el formato anglosajón (MM-DD-YYYY) y el castellano (DD-MM-YYYY). En importaciones que hago de ficheros de texto (YYYYMMDD) le suelo aplicar la siguiente conversión: Celda o array = Format(Mid(FVto, 7, 2) & "/" & Mid(FVto, 5, 2) & "/" & Left(FVto, 4), "dd/mm/yyyy") Y si es una celda con el formato adecuado no hay ningún problema. Pero muchas veces son cargas masivas y traslado todos los datos a un Array antes de copiarlo en la hoja. Si el array es del tipo variant muchas veces me baila el día con el mes y lo que suelo hacer para resolverlo es crear dos arrays, uno con los campos de fecha declarándolo como DATE y otro array con el resto de campos del tipo VARIANT. La consulta es por ver si hay una solución más eficiente para no llevarme sorpresas en alguna importación. Gracias
Editado por SkaryBlondi - 10/Diciembre/2020 a las 10:34 |
|
AnSanVal
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador Unido: 16/Marzo/2005 Localización: España Estado: Sin conexión Puntos: 5970 |
Enviado: 10/Diciembre/2020 a las 18:22 |
Hola SkaryBlondi. Normalmente ese tema se resuelve con: Datos >
Herramientas de datos >Texto en columnas, donde en el paso 3 debes indicar
que (el campo de las fechas) se trata de Fecha con el
formato MDA. |
|
Saludos desde Tenerife.
|
|
SkaryBlondi
Habitual Unido: 24/Octubre/2020 Localización: Asturias Estado: Sin conexión Puntos: 89 |
Enviado: 10/Diciembre/2020 a las 18:41 |
Gracias AnSanVal, pero no es una importación pura. Hago una importación de un TXT, pero los datos de una fila de Excel están contenidos en varios registros del TXT, además alguno de los campos hay que calcularlos, etc. Por todo ello, la información que importo la vuelco en un Array y que luego copio en la hoja de excel con VBA mediante: Range("PosiciónInicialHoja").Resize(filas, campos).Value = ArrayImportado Saludos, Editado por SkaryBlondi - 10/Diciembre/2020 a las 18:42 |
|
AnSanVal
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador Unido: 16/Marzo/2005 Localización: España Estado: Sin conexión Puntos: 5970 |
Enviado: 10/Diciembre/2020 a las 23:34 |
Si lo
quieres con VBA, y suponiendo que FVto es
20201210 (AMD). Esto... Celda o array = Format(Mid(FVto, 7,
2) & "/" & Mid(FVto, 5, 2) & "/" &
Left(FVto, 4), "dd/mm/yyyy") ... no devuelve una fecha, devuelve texto (si a Excel le resulta ambiguo podria ser 12 de octubre, 10 de diciembre o lo deja en texto). Esto otro... DateSerial(Left(FVto, 4), Mid(FVto,
5, 2), Right(FVto, 2)) ... si devuelve una fecha (Excel no duda) 10 de diciembre de 2020. Si quieres algo diferente aporta una imagen de ejemplo y lo que quieres obtener a partir del ejemplo. |
|
Saludos desde Tenerife.
|
|
SkaryBlondi
Habitual Unido: 24/Octubre/2020 Localización: Asturias Estado: Sin conexión Puntos: 89 |
Enviado: 11/Diciembre/2020 a las 00:01 |
Mil gracias AnSanVal
En el array guardaba
la fecha en modo texto con el Format, pensaba que era fecha. Al declarar
un array independiente como fecha forzaba la grabación como date y funcionaba,
pero con esta función DateSerial que desconocía ya puedo forzar la
grabación con una único array variant y evitarme lios con cambios entre
día y mes. En concreto el ejercicio que tengo
en Excel es la importación de AEB19, AEB58, AEB19.14, AEB19.44 y Adeudos
Sepa XML CORE y B2B y la generación de remesas de Adeudos tanto en
formato texto como XML. Saludos y podéis cerrar el tema. |
|
Responder | |
Tweet
|
Ir al foro | Permisos de foro Usted No puede publicar nuevos temas en este foro Usted No puede responder a temas en este foro Usted No puede borrar sus mensajes en este foro Usted No puede editar sus mensajes en este foro Usted No puede crear encuestas en este foro Usted No puede votar en encuestas en este foro |