No diré que soy nuevo en VBA pero hay un problema que me supera y me ha llevado a pedir ayuda por aquí para ver si alguien le ha sucedido algo por el estilo y ha logrado solucionarlo.
Yo trabajo sobre el excel 2003.
Esta es la situación, tengo un archivo que necesita de otro excel para tomar los datos de este ( he incluido en adjuntos el archivo excel citrix.xls ), el archivo citrix.xls fue creado mediante un programa del cual, tengo sospechas que lo crea en una versión del excel inferior al 2003.
El problema es el siguiente, cuando por medio de una macro llega la parte en la cual la macro abre el archivo citrix.xls para copiar la hoja y pegarla en el archivo excel donde se encuentra la macro y continué procesando los datos lo hace bien, copia y pega sin problemas, la razón del problema es que la columna de citrix.xls donde se encuentra la fecha, al pegarla en el excel de la macro le cambia el formato, por ejemplo la fecha de la primera columna de citrix es:
12/11/2012
y al copiarlo y pegarlo en la otra hoja lo pasa así,
11/12/2012
como se puede comprobar no es la misma fecha ni el mismo valor númerico, pero solo ocurre con el primer dia, el siguiente dia si lo pone bien, como,
13/11/2012 pero en formato texto pues entiendo que el mes 13 no existe y lo interpreta como texto llano.
Todo esto ocurre cuando se ejecuta la siguiente macro, pondré solo el fragmento donde llama a citrix
.....
Workbooks.Open Filename:=c:\citrix.xls 'Ubicacion ficticia donde se encuentra el archivo de datos
Workbooks("citrix.xls").Activate
Cells.Select
Selection.Copy
Workbooks(nombrelibro).Sheets("Datos").Visible = True
Workbooks(nombrelibro).Sheets("Datos").Activate
Cells.Select
ActiveSheet.Paste
Workbooks("citrix.xls").Close savechanges:=False 'evito guardar al cerrar para que no me muestre la imagen que he agregado a este mensaje mas abajo
Call ejec 'llama la siguiente macro
....
[/CODE]
Después de mucho investigar hiendo linea a linea llegue a la conclución, que si el archivo citrix.xls se abre de forma MANUAL neutralizando la linea
el copiado y pegado lo hace correctamente incluso el formato de fecha corresponde con el debe ser y todo lo hace perfectamente bien como lo quiero.
Pero si dejo que sea la linea neutralizada [b]Workbooks.Open Filename:=c:\citrix.xls[/b] la que abra el archivo, lo copia y pega mal.
[u]
[i]¿ Habría alguna manera de abrir dicho archivo mediante VBA que no sea de la manera citada para que los datos los trate como debería?[/i][/u]
Por si vale de algo adjunto imagen,
[ATTACH]34951.vB[/ATTACH]
Este mensaje aparece si el archivo adjunto es nuevamente guardado, osea si se intenta modificar y guardar, supongo que es por donde erradica todo el problema.
Si la solución es que el programa que crea el archivo citrix.xls lo guarde en otro formato, la respuesta es que no es posible pues he de trabajar con lo que crea, si no hay solución tendre que hacerlo de forma manual, abriendo el archivo de forma manual para que los datos sean cogidos correctamente.
Buenos días,
No diré que soy nuevo en VBA pero hay un problema que me supera y me ha llevado a pedir ayuda por aquí para ver si alguien le ha sucedido algo por el estilo y ha logrado solucionarlo.
Yo trabajo sobre el excel 2003.
Esta es la situación, tengo un archivo que necesita de otro excel para tomar los datos de este ( he incluido en adjuntos el archivo excel citrix.xls ), el archivo citrix.xls fue creado mediante un programa del cual, tengo sospechas que lo crea en una versión del excel inferior al 2003.
El problema es el siguiente, cuando por medio de una macro llega la parte en la cual la macro abre el archivo citrix.xls para copiar la hoja y pegarla en el archivo excel donde se encuentra la macro y continué procesando los datos lo hace bien, copia y pega sin problemas, la razón del problema es que la columna de citrix.xls donde se encuentra la fecha, al pegarla en el excel de la macro le cambia el formato, por ejemplo la fecha de la primera columna de citrix es:
12/11/2012
y al copiarlo y pegarlo en la otra hoja lo pasa así,
11/12/2012
como se puede comprobar no es la misma fecha ni el mismo valor númerico, pero solo ocurre con el primer dia, el siguiente dia si lo pone bien, como,
13/11/2012 pero en formato texto pues entiendo que el mes 13 no existe y lo interpreta como texto llano.
Todo esto ocurre cuando se ejecuta la siguiente macro, pondré solo el fragmento donde llama a citrix
Después de mucho investigar hiendo linea a linea llegue a la conclución, que si el archivo citrix.xls se abre de forma MANUAL neutralizando la linea
y se ejecuta la macro
el copiado y pegado lo hace correctamente incluso el formato de fecha corresponde con el debe ser y todo lo hace perfectamente bien como lo quiero.
Pero si dejo que sea la linea neutralizada [b]Workbooks.Open Filename:=c:\citrix.xls[/b] la que abra el archivo, lo copia y pega mal.
[u]
[i]¿ Habría alguna manera de abrir dicho archivo mediante VBA que no sea de la manera citada para que los datos los trate como debería?[/i][/u]
Por si vale de algo adjunto imagen,
[ATTACH]34951.vB[/ATTACH]
Este mensaje aparece si el archivo adjunto es nuevamente guardado, osea si se intenta modificar y guardar, supongo que es por donde erradica todo el problema.
Si la solución es que el programa que crea el archivo citrix.xls lo guarde en otro formato, la respuesta es que no es posible pues he de trabajar con lo que crea, si no hay solución tendre que hacerlo de forma manual, abriendo el archivo de forma manual para que los datos sean cogidos correctamente.
Gracias y perdonar por las molestias.
citrix.xls