Visual Basic - Problemas con la automatización de Excel

Life is soft - evento anual de software empresarial
 
Vista:

Problemas con la automatización de Excel

Publicado por Vicente (2 intervenciones) el 31/01/2006 08:28:30
Estoy realizando el proyecto final de carrera con VB6 y he desarrollado una aplicación bastante compleja, pero tengo problemas con la automatización de Excel. Si abro un archivo lo modifico y lo cierro, perfecto. Los problemas vienen cuando intento abrir varios archivos a la vez y crear un tercero . He repasado el código, he mirado libros... y en teoría debería funcionar pero... Utilize Windows Xp, Office Xp y VB6.

El problema es que una vez que ejecuto el código, Excel no responde, si vuelvo a ejecutar el código el programa se cuelga y no puedo ni siquiera abrir Excel. He observado en el Administrador de tareas que queda un proceso “Excel.es” abierto, al cerrarlo Excel vuelve a funcionar.

Por tal de aislar el problema, he creado una sencilla aplicación que abre un libro de Excel y copia la primera pagina en un nuevo libro, no soy capaz de hacerlo funcionar correctamente. Incluyo el código a ver si me podéis ayudar y gracias por intentarlo.

Private Sub Command1_Click()

Dim msexcel As Object
Set msexcel = New Excel.Application

CommonDialog1.DefaultExt = "xls"
CommonDialog1.Filter = ".xls | *.xls"
CommonDialog1.DialogTitle = "Abrir"
CommonDialog1.ShowOpen

With msexcel
msexcel.Workbooks.Open FileName:=CommonDialog1.FileName
Cells.Select
Selection.Copy
Workbooks.Add
ActiveSheet.Paste

CommonDialog1.DefaultExt = "xls"
CommonDialog1.Filter = ".xls | *.xls"
CommonDialog1.DialogTitle = "Guardar como"
CommonDialog1.ShowSave

ActiveWorkbook.SaveAs FileName:= _
CommonDialog1.FileName, FileFormat:= _
xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
, CreateBackup:=False
End With

msexcel.Quit
Set msexcel = Nothing

End Sub
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problemas con la automatización de Excel

Publicado por gustavo (1 intervención) el 31/01/2006 11:48:43
vicente no se que quieres hacer con el libro pero te puedo sugerir que utilices esta rutina para abrir el libro, esta abre un libro ya existen que puede ser un apantilla ingresa datos desde VB a la hoja si la modificas puedes lograr lo que quieres que el libro abre con el nombre del original pero anexa un numero consecutivo y crea conflictos

'' crea el libro
Dim oex As Object
Dim obook As Object
Dim osheet As Object
Set oex = CreateObject("excel.application")
Set obook = oex.workbooks.Add(App.Path & "\odontodiagrama.xls")
Set osheet = obook.worksheets(1)
obook.application.displayalerts = False

'' recibe datos desde VB
With osheet
.range("b8") = Text1.Text
.range("h8") = Text2.Text
.range("n8") = Text3.Text
.range("q8") = Text4.Text
.range("t8") = Text5.Text

.Saveas (App.Path & "\odontodiagrama.xls")

'ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
'.Saveas (App.Path & "\odontodiagrama.xls")
End If

End With
oex.quit
'oex.Close
suerte...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problemas con la automatización de Excel

Publicado por vicente (2 intervenciones) el 01/02/2006 08:17:43
Me ha funcionado, gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar