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

Life is soft - evento anual de software empresarial
   
Vista:

Cerrar dos libros de EXCEL desde VBA

Publicado por antonio (5 intervenciones) el 24/04/2015 01:28:47
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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
información
Otras secciones de LWP con contenido de Visual Basic para Aplicaciones
- Código fuente de Visual Basic para Aplicaciones
- Cursos de Visual Basic para Aplicaciones
- Temas de Visual Basic para Aplicaciones
información
Códigos de Visual Basic para Aplicaciones
- Cajero Automatico
- Buscador para Excel
- Formulario de Access

Cerrar dos libros de EXCEL desde VBA

Publicado por Roberto F. (8 intervenciones) el 25/04/2015 17:15:00
Bueno....

Lo primero es que supongo que libro1$ y libro2$ son variables que tienen la ruta completa de los ficheros excel que quieres abrir.

El problema es que una vez abiertos no se usa la ruta completa del fichero cuando se hace referencia a la colección workbooks, sino solamente el nombre corto. Por eso no se puden abrir 2 ficheros excel que se llamen igual.

Es decir.. sería :
'para abrir el libro
Set objWorkbook1 = oExcel.Workbooks.Open("c:\documents\pepe\libro.xlsx")

...
'para guardarlo
oExcel.Workbooks("libro.xlsx").Save

Logicamente si no tengo el nombre como constante sino una variable tendría que andar calculando cual es el nombre corto del fichero. Por lo que lo mas normal sería usar las variables objWorkbook1 yobjWorkbook2, que además ya que las tengo, sería tan simple como poner:

objWorkbook1.save
objWorkbook1.close

objWorkbook2.save
objWorkbook2.close
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Cerrar dos libros de EXCEL desde VBA

Publicado por antonio (5 intervenciones) el 25/04/2015 18:54:23
Roberto,

Muchas gracias por tu respuesta, funciona perfectamente

:) :) :)

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