Excel cambia el formato de fechas intercambiando el día con el mes

598 views
Skip to first unread message

Jose Rosales

unread,
May 19, 2016, 2:46:41 PM5/19/16
to Comunidad de Visual Foxpro en Español
Buenas tardes,

Quisiera compartir mi experiencia debido a que soy novato programando en fox y buscando hasta el cansancio la web no me ayudó a resolver mi problema.

Resulta que tengo un programa en visual fox pro que descarga cierta información a excel, la información contiene tanto datos numéricos, caracteres y fechas. El problema se daba a que la información de la fecha en VFP se mostraba de forma correcta (D/M/Y), pero al momento de abrir el archivo en excel esta fecha invertía el día con el mes dejando así una fecha 04/05/2016 de esta forma 05/04/2016.
Los días mayores a 12 me los mostraba de otra forma por ejemplo: si tenia la fecha 23/05/2016 me los mostraba asi: 20160523

Se imaginan lo que tenia que hacer, buscar y reemplazar textos por fechas correctas buscando dia por dia y mes por mes, mis archivos contenían miles de filas y era demasiado tedioso.

Me recomendaron revisar la configuración regional de Windows, pero está estaba correcta, fui a las propiedades de celdas pero resulta que también estaba correcta, a tal punto que llegué a pensar que era configuración del office y descargué otro mas reciente y el resultado fue el mismo, coloque el comando set date to DMY y no lograba.


Para no hacerlas de cansadas al final resolví con la forma de mandar desde fox a exportar a excel.

Forma antigua con problema de fechas:

STORE "COPY TO Nombre_archivo.xls fox2" TO comando
&comando

Forma Correcta sin problemas:

COPY TO "Nombre_archivo.xls" TYPE XL5

Resulto ser algo tan sencillo pero que me llevó tiempo investigarlo y se que muchos que quizá ya saben este lenguaje les parezca tonto, comprendan que soy novato en fox, lo raro era que solo en mi computadora fallaba la forma antigua, a otro amigo le funcionaba a la perfección, por lo que descartaba la posibilidad que el programa estuviera mal. El asunto es que si tienes este problema en algún momento quizá sea la forma que estas usando para exportar a excel.

Saludos...





Jorge L. Florez C.

unread,
May 19, 2016, 3:11:38 PM5/19/16
to publice...@googlegroups.com
Hola.

Tu campo fecha conviertelo a caracter y de ahí lo exportas al excel

Saludos
Jorge Florez
Lima - Perú

Roberto Tello & Asoc. - Estudio Informatico

unread,
May 19, 2016, 4:05:16 PM5/19/16
to publice...@googlegroups.com

Aqui te paso un ejemplo como yo lo solucioné. Espero te sirva. Saludos.-

Select Cursor

GO TOP

SELECT matricula,nombres,domicilio,padl(DAY(ftitu),2,'0')+'/'+padl(month(ftitu),2,'0')+'/'+padl(year(ftitu),4,'0') as ftitu FROM cursor INTO CURSOR opc1 ORDER BY matricula

nomb_arch = 'ACTIVOS SIN DEUDAS' + '.XLS'

arch_salida = PUTFILE('Archivo XLS:', nomb_arch, 'XLS')

IF EMPTY(arch_salida)  

ELSE

 EXPORT TO (arch_salida) TYPE XLS

ENDIF
loShell = CREATEOBJECT("Shell.Application")

loShell.ShellExecute(arch_salida)

RELEASE loShell

--
Roberto H. Tello & Asoc.
Estudio Informático
Msn: robertote...@hotmail.com
Skype: robertotellomoreno

fasm

unread,
May 20, 2016, 12:23:13 AM5/20/16
to Comunidad de Visual Foxpro en Español
Yo para manejar ese formato de fecha tengo seteado al inicio de mi programa el siguiente SET:

SET DATE FRENCH
o
SET DATE BRITISH

Y si con eso no funciona, intenta convertir en texto ese dato como te lo han recomendado

DTOC(date())

Saludos;
Reply all
Reply to author
Forward
0 new messages