Como abrir archivo en nueva aplicacion Excel.

04/03/2007 - 22:25 por ~ jose ~ | Informe spam
Hola, que hay?

Como puedo abrir un archivo existente (Archivo 2.xls) desde una macro
del "Archivo 1.xls" pero en una nueva aplicación Excel?
Osea que me quedarían dos archivos abiertos en dos Excel
independientes entre si.

Venga! un saludo y gracias.
jose

Preguntas similare

Leer las respuestas

#6 Héctor Miguel
08/03/2007 - 03:20 | Informe spam
hola, jose !

Mostrar la cita
1) [hasta donde se]... cuando abres por codigo otro archivo que contiene macros... excel 'supone' que las macros son 'seguras'
[por lo mismo] NO solicita tu permiso para ejecutar los eventos ['_open', 'auto_open', etc.]... -> a menos que deshabilites ;)

2) si tu segundo archivo se abre mostrando un dialogo/formulario... el codigo que lo abrio NO continuara hasta que el usuario 'responda'

3) no es clara la 'necesidad' de abrir un segundo archivo utilizando otro como 'puente' [de manera 'obligada'] -???-
a menos que estes 'forzando' a que 'el segunso' se abra SIN actualizacion de vinculos externos -???-
en cuyo caso, es necesario indicar en el procedimiento que lo abre... que ejecute las 'automacros' -???-

4) [de todas formas]... seria conveniente si expones las macros que estas usando actualmente [en ambos libros]
al menos... lo que corresponde a los motivos de tu consulta :))

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
#7 ~ jose ~
08/03/2007 - 18:23 | Informe spam
Hola que tal?

Mostrar la cita
No puedo deshabilitar, se tiene que ejecutar las macros en el segundo
libro.

Mostrar la cita
Por eso tengo el problema, como puedo cerrar el archivo 1 antes de
abrir el 2?, chungo no?

Mostrar la cita
Es porque si se está utilizando el archivo1 y mi web existe un archivo
superior (en este caso el archivo2) entonces se descarga sólo y se
ejecuta, y lo que hago es copiar unos rangos de celdas del archivo1 al
archivo2 y quisiera cerrar el archivo1 para seguir trabajando con la
neuva versión del programa (con los datos que el usuario a estado
metiendo en el archivo1). Me explico?

Mostrar la cita
No tiene vinculos externos (entiendo como vinculos externos a
funciones que hace referencia a otros libros, como por ejemlo un
BUSCARV que se podria utilizar a una base de datos excel externa)

Mostrar la cita
En el archivo1 tengo esta macro que abre el archivo2 SIN habilitar
macros para poder copiar y pegar los rangos necesarios y lo vuelve a
cerrar para abrirlo con macros habilitadas y también intentaba hacer
lo que pedia (sin exito, claro), pero no me importa si es en la misma
aplicación o es en otra.
He puesto notas en el código para que sea mas facil de entender:

Private Sub ActualizarVersionNueva()
Dim ArchivoURL As String 'nombre de la ultima version disponible con
%20 para los espacios
Dim ArchivoLocal As String 'nombre de la ultima version disponible
Dim sSourceUrl As String 'url a descargar
Dim sLocalFile As String 'ruta del archivo descargado

ArchivoURL = ThisWorkbook.Worksheets(2).[af6]
ArchivoLocal = ThisWorkbook.Worksheets(2).[af4]
sSourceUrl = "http://www.carpinjose.com/blablabla...ile=" &
ArchivoURL
sLocalFile = ThisWorkbook.Path & "\" & ArchivoLocal

If DownloadFile(sSourceUrl, sLocalFile) = True Then
Application.ScreenUpdating = False
Application.EnableEvents = False 'Para no habilitar macros en el
archivo nuevo
Workbooks.Open sLocalFile
ThisWorkbook.Worksheets(2).Columns("A:F").Copy
Worksheets(2).Range("A1").PasteSpecial xlPasteAll
ThisWorkbook.Worksheets(2).Columns("K:K").Copy
Worksheets(2).Range("K1").PasteSpecial xlPasteAll
ThisWorkbook.Worksheets(1).Columns("B:Q").Copy
Worksheets(1).Range("B1").PasteSpecial xlPasteAll
Application.CutCopyMode = False
ActiveWorkbook.Close True 'cierra el archivo nuevo y guarda los
cambios
Application.EnableEvents = True
'A PARTIR DE AQUÍ ME HAGO LA PICHA UN LIO
'esto es con lo que estaba probando, sin exito claro!

Application.OnTime Now + TimeValue("00:00:05"), "ThisWorkbook.Close
False"
'ponia esto para probar a ver si me creaba la nueva aplicación y a los
5 segundos me cerraba esta
With
CreateObject("Excel.Application").Workbooks.Open(sLocalFile): .Application.Visible
= True: End With
Application.ScreenUpdating = True
End If
End Sub

En el inico del archivo2 tengo el código que me debería cambiar el
nombre de la aplicación por eso decia de abrir una nueva instancia de
excel, para que me mueste el nombre correcto y no el del archivo1:

Private Sub Workbook_Open()
Me.Application.Caption = ThisWorkbook.Worksheets(2).[v2] 'nombre del
programa
Me.Windows(1).Caption = "" 'vacio para que solo aparezca en nombe del
programa sin el guion
Presentacion.Show 'es el formulario desde donde se maneja todo el
programa
End Sub


Una vez lei por ahi una frase que me gustó pero no me acuerdo
exactamente como era pero decia algo así: si uno se esfuerza en
preguntar, puede que otro se esfuerce en responder.

Yo creo que no soy de esos que no se esfuerzan, no?
Venga, muchas gracias y un saludo a todos los que me leen.
jose
#8 ~ jose ~
09/03/2007 - 13:01 | Informe spam
Hola muy buenas!!!
bueno, pues el que lo persigue lo consigue no? (a veces eh! jejeje),
pues eso, que lo he conseguido. El truco era poner el ontime en el
archivo2 en el evento open y asi se puede ejecutar todo el código en
el archivo1 y poder cerarlo sin problemas.
Quedaria así:

1) en el archivo1:
Workbooks.Open 'aqui la ruta del archivo a abrir en la misma
aplicacion
ThisWorkbook.Close False 'cierro sin guardar cambios el archivo1

2) en el archivo2:
a) en el evento open del libro:
Private Sub Workbook_Open()
Me.Application.Caption = ThisWorkbook.Worksheets(2).[v2]
Me.Windows(1).Caption = ""
Application.OnTime Now + TimeValue("00:00:02"), "Inicio"
End Sub
b) en un módulo:
Private Sub Inicio()
UserForm1.Show 'abro el formulario desde donde se maneja el
programa
End Sub

Bueno, pues ahi dejo esto para el qeu le sirva vale?
Venga, un saludo y hasta otra de mis rarezas :o
PD: si hubiera algún comentario o sugerencia no dudes en escribirla
vale?

Mostrar la cita
Ads by Google
Search Busqueda sugerida