Guardar archivos de excel desde Visual Basic

Txola
23 de Octubre del 2003
Hola amig@s,

Abro sin ningún problema una hoja de Excel desde Visual Basic. Hago las modificaciones correpondientes (también desde el VB), pero a la hora de guardar los cambios, genera otro archivo en vez de realizar los cambios sobre el archivo ya creado y abierto.

Alguien me puede indicar el código para guardar los cambios en una hoja de Excel?

Muchas gracias.

txola
23 de Octubre del 2003
Por favor, ayudarme!!!! Estoy desesperada...

Os explico mejor el problema.

Código que mete en un formulario:

Dim ap As New Excel.Application
ap.DisplayAlerts=False
ap.Workbooks.Open App.Path & "nombrearchivo.xls"

... (código)


ao.Workbooks(1).Save
ap.Workbooks.Close
ap.Quit
Set ap=Nothing

Cuando ejecuto el programa no me da ningún problema. Sin embargo, cuando voy a comprobar que realmente se ha guardado bien el archivo, el PC me indica que el archivo es de "Sólo lectura" y si lo abro, no están reflejados los cambios realizados a traves de Visual Basic. VB genera otro archivo con el mismo nombre pero fuera de la carpeta en la que estoy trabajando. Si yo estoy trabajando en la carpeta C:Mis DocumentosCarpeta1, el programa genera un archivo de excel en C:Mis Documentos.

Quiero que de alguna forma le indique al programa que el archivo de excel es "for writting" y no de "readonly". Me podéis ayudar?

Muchas gracias.

Limbert
23 de Octubre del 2003
Hola como estas yo tenia el mismo problema, y lo solucione reemplzzando
ap.Workbooks(1).Save, por ap.Workbooks(1).SaveAs([Direccion a guardar el archivo])
utilizando este metodo no te da problema porque si el archivo se encuentra en esa direccion lo sobreescribe y si no se encuentra lo crea for writting.
Espero que te ayude si no es que encontraste la solución

Limbert
23 de Octubre del 2003
Hola como estas yo tenia el mismo problema, y lo solucione reemplzzando
ap.Workbooks(1).Save, por ap.Workbooks(1).SaveAs([Direccion a guardar el archivo])
utilizando este metodo no te da problema porque si el archivo se encuentra en esa direccion lo sobreescribe y si no se encuentra lo crea de manera writting