Visual Basic para Aplicaciones - Cerrar 2 libros de EXCEL desde VBA

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil

Cerrar 2 libros de EXCEL desde VBA

Publicado por amataran (5 intervenciones) el 24/04/2015 01:40:19
Dim oExcel As Object

Set oExcel = CreateObject("Excel.Application")

Set objWorkbook1 = oExcel.Workbooks.Open(libro1$) 'Abro 2 libros
Set objWorkbook2 = oExcel.Workbooks.Open(libro2$)

oExcel.Application.DisplayAlerts = False
oExcel.Application.Visible = False

'........proceso
'........

oExcel.ActiveWorkbook.Save 'Guardo y cierro el primer libro (libro activo) FUNCIONA
oExcel.ActiveWorkbook.Close

oExcel.Workbooks(libro2$).Save 'Intento guardar el segundo libro, PERO ESTO NO FUNCIONA
oExcel.Workbooks(libro2$).Close
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
sin imagen de perfil

Cerrar 2 libros de EXCEL desde VBA

Publicado por Khristtian (4 intervenciones) el 24/04/2015 14:08:02
Probaste:

1.- Haciendo activo el 2o libro ????

2.- Guardando los dos libros primero y después cerrarlos...??


Viendo tu código, debiste analizar que son diferentes.

oExcel.ActiveWorkbook.Save 'Guardo y cierro el primer libro (libro activo) FUNCIONA
oExcel.ActiveWorkbook.Close

oExcel.Workbooks(libro2$).Save 'Intento guardar el segundo libro, PERO ESTO NO FUNCIONA
oExcel.Workbooks(libro2$).Close


oExcel.ActiveWorkbook.Save
oExcel.Workbooks(libro2$).Save

?????????
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
sin imagen de perfil

Cerrar 2 libros de EXCEL desde VBA

Publicado por Khristtian (4 intervenciones) el 24/04/2015 21:04:07
Me había olvidado de esto:

oExcel.Application.DisplayAlerts = False


Eso se hace cuando ya has verificado que todo funciona.

Debo suponer que excel pregunta "Desea guardar los cambios...?"
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
sin imagen de perfil

Cerrar 2 libros de EXCEL desde VBA

Publicado por antonio (5 intervenciones) el 24/04/2015 21:11:25
Esta respuesta no me ha solucionado nada
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

Cerrar 2 libros de EXCEL desde VBA

Publicado por juan (1 intervención) el 24/04/2015 21:39:26
se ve no como solucion
es para que analices tu codigo y encuentres tu error.
no esperes que hagan tu trabajo.
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
sin imagen de perfil

Cerrar 2 libros de EXCEL desde VBA

Publicado por antonio (5 intervenciones) el 24/04/2015 21:59:32
Gracias Juan,

No quiero molestar a nadie, y menos que hagan mi trabajo
Lo que pasa es que soy principiante en este tipo de programacion y no se como seguir por mi mismo

Gracias de nuevo y ya preguntare en otros foros para conseguir alguna ayuda

Un saludo,
Antonio
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
sin imagen de perfil

Cerrar 2 libros de EXCEL desde VBA

Publicado por Khristtian (4 intervenciones) el 06/05/2015 20:22:16
Tardé un poco, pero regreso a este post...

"Esta respuesta no me ha solucionado nada" mmm lastima que no te haya ayudado, pero si no eres capas de analizar lo que te expuse:

Ni siquiera te tomaste el tiempo de evaluar lo que te dije:

-----------------------

Probaste:

1.- Haciendo activo el 2o libro ????
EXPLICACION: Si te fijas... cuando grabas por primera vez usas oExcel.ActiveWorkbook.Save y en la segunda usas oExcel.Workbooks(libro2$).Save
Se ve claramente la diferencia en ambas instrucciones NO REQUIERE MAS EXPLICACIÓN.

2.- Guardando los dos libros primero y después cerrarlos...??
EXPLICACION: Usas Save y luego Close, por separado. Pimero oExcel.ActiveWorkbook.Close, luego oExcel.Workbooks(libro2$).Close.
Solo bastaba hacer esto para probar:
oExcel.ActiveWorkbook.Save
oExcel.Workbooks(libro2$).Save
oExcel.ActiveWorkbook.Close
oExcel.Workbooks(libro2$).Close


Viendo tu código, debiste analizar que son diferentes. EN NEGRITA LO QUE DEBIAS VER Y JUGAR A ENCUENTRE LAS DIFERENCIAS
oExcel.ActiveWorkbook.Save 'Guardo y cierro el primer libro (libro activo) FUNCIONA
oExcel.ActiveWorkbook.Close

oExcel.Workbooks(libro2$).Save 'Intento guardar el segundo libro, PERO ESTO NO FUNCIONA
oExcel.Workbooks(libro2$).Close

Aqui solo te lo hacia mas facil:
oExcel.ActiveWorkbook.Save
oExcel.Workbooks(libro2$).Save

Cuando usas esta linea: oExcel.Application.DisplayAlerts = False

Sabes para que es???
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