............ Foro Excel
Si no lo has hecho aún: REGISTRATE!!!

Verificar si dos libros estan abiertos y si no abrir ambos

Ver el tema anterior Ver el tema siguiente Ir abajo

Verificar si dos libros estan abiertos y si no abrir ambos

Mensaje por Roberto2010 el Sáb Jun 09, 2012 11:49 am

Buenos días, recogí de internet el siguiente código, que funciona bien cuando se trata de hacer lo del 'título del tema' con un solo archivo, es decir verificar y abrir un solo archivo.
Pero en mi caso que quiero verificar dos archivos y abrirlos no funciona del todo bien, el error que encuentro es que si el primer archivo esta abierto y el segundo no, la macro no abre el segundo.
¿Me ayudarían? Muchas gracias

Function Verificador(ByVal nLibro As String) As Boolean
Verificador = True
On Error GoTo Final
Workbooks(nLibro).Activate
Verificador = False
Final:
Err.Clear
End Function

Sub Verificar_y_Abrir()
ChDrive "C:\"
If Verificador1("1er Archivo que quiero que se abra.xls") = True Then
ChDir "C:\"
Workbooks.Open Filename:="1er Archivo que quiero que se abra.xls"
Else
Exit Sub
End If

'apartir de aquí yo le agregué para que abriera el segundo archivo pero anda del todo bien como ya expliqué:
ChDrive "C:\"
If Verificador1("2do Archivo que quiero que se abra.xls") = True Then
ChDir "C:\"
Workbooks.Open Filename:="2do Archivo que quiero que se abra.xls"
Else
Exit Sub
End If

End sub
avatar
Roberto2010

Masculino Cantidad de envíos : 76
Edad : 40
Ciudad - Pais : ARGENTINA
Version de Excel : 2003-2007
Fecha de inscripción : 03/09/2010

Volver arriba Ir abajo

Re: Verificar si dos libros estan abiertos y si no abrir ambos

Mensaje por GalileoGali el Vie Jun 15, 2012 12:44 am

Proba esto.

Código:
Function Verificador(ByVal nLibro As String) As Boolean
Verificador =True
On Error Resume next
Err.Clear
Workbooks(nLibro).Activate
If Err.Clear <> 0 Then Verificador = False
End Function


_________________
GalileoGali
M.A.P. 2010-2013
Microsoft Active Professional
avatar
GalileoGali
Admin

Masculino Cantidad de envíos : 1962
Edad : 61
Ciudad - Pais : QUIROGA, Argentina
Version de Excel : 2000-2003-2007-2010
Fecha de inscripción : 24/01/2008

http://excelgali.mejorforo.net

Volver arriba Ir abajo

Re: Verificar si dos libros estan abiertos y si no abrir ambos

Mensaje por Roberto2010 el Vie Jun 15, 2012 10:59 pm

Estimado GalileoGali
gracias por su tiempo, le comento que al ejecutar la macro:
Sub Verificar_y_Abrir()
arroja el siguiente error:
Error de compilación, se esperaba una function o una variable
y se 'detiene' en: Err.clear
muchas gracias
avatar
Roberto2010

Masculino Cantidad de envíos : 76
Edad : 40
Ciudad - Pais : ARGENTINA
Version de Excel : 2003-2007
Fecha de inscripción : 03/09/2010

Volver arriba Ir abajo

Re: Verificar si dos libros estan abiertos y si no abrir ambos

Mensaje por GalileoGali el Sáb Jun 16, 2012 1:09 am

a ver ahora

Código:
Function Verificador(ByVal nLibro As String) As Boolean
Verificador = True
On Error Resume Next
Err.Clear
Workbooks(nLibro).Activate
If Err.Number <> 0 Then Verificador = False
End Function

_________________
GalileoGali
M.A.P. 2010-2013
Microsoft Active Professional
avatar
GalileoGali
Admin

Masculino Cantidad de envíos : 1962
Edad : 61
Ciudad - Pais : QUIROGA, Argentina
Version de Excel : 2000-2003-2007-2010
Fecha de inscripción : 24/01/2008

http://excelgali.mejorforo.net

Volver arriba Ir abajo

Re: Verificar si dos libros estan abiertos y si no abrir ambos

Mensaje por Roberto2010 el Sáb Jun 16, 2012 1:28 am

Ahora no arroja ningún error, sin embargo la macro no abre ningun libro.
avatar
Roberto2010

Masculino Cantidad de envíos : 76
Edad : 40
Ciudad - Pais : ARGENTINA
Version de Excel : 2003-2007
Fecha de inscripción : 03/09/2010

Volver arriba Ir abajo

Re: Verificar si dos libros estan abiertos y si no abrir ambos

Mensaje por GalileoGali el Sáb Jun 16, 2012 8:59 pm

aHORA


Código:
Sub Verificar_y_Abrir()
ChDrive "i:\"
If Verificador("DLPP4.xlsX") = False Then
Workbooks.Open Filename:="DLPP4.xlsX"
End If

If Verificador("DLpp5.xlsX") = False Then
Workbooks.Open Filename:="DLpp5.xlsX"
End If

End Sub

Function Verificador(ByVal nLibro As String) As Boolean
Verificador = True
On Error Resume Next
Err.Clear
Workbooks(nLibro).Activate
If Err.Number <> 0 Then Verificador = False
End Function

_________________
GalileoGali
M.A.P. 2010-2013
Microsoft Active Professional
avatar
GalileoGali
Admin

Masculino Cantidad de envíos : 1962
Edad : 61
Ciudad - Pais : QUIROGA, Argentina
Version de Excel : 2000-2003-2007-2010
Fecha de inscripción : 24/01/2008

http://excelgali.mejorforo.net

Volver arriba Ir abajo

Re: Verificar si dos libros estan abiertos y si no abrir ambos

Mensaje por Roberto2010 el Dom Jun 17, 2012 8:44 pm

Muy agradecido GalileoGali, funciona con n libros, es decir con más de dos.
Gracias por su tiempo en atender mi dificultad.
avatar
Roberto2010

Masculino Cantidad de envíos : 76
Edad : 40
Ciudad - Pais : ARGENTINA
Version de Excel : 2003-2007
Fecha de inscripción : 03/09/2010

Volver arriba Ir abajo

Re: Verificar si dos libros estan abiertos y si no abrir ambos

Mensaje por Tatayayan el Miér Jun 20, 2012 12:21 am

Hola, más Vale tarde que nunca!
Function ABIERTO(ws) As Boolean
On Error Resume Next
ABIERTO = Not IsError(Workbooks(ws))
End Function
avatar
Tatayayan
Moderador
Moderador

Masculino Cantidad de envíos : 319
Ciudad - Pais : Chamical- La Rioja - ARG
Fecha de inscripción : 20/11/2008

Volver arriba Ir abajo

Re: Verificar si dos libros estan abiertos y si no abrir ambos

Mensaje por Roberto2010 el Miér Jun 20, 2012 11:29 am

Perfecto Tatayayan!
Probé y funciona muy bien, es otra forma de lograr lo mismo, gracias.
Anoto ambos métodos.
Exelente Foro !
avatar
Roberto2010

Masculino Cantidad de envíos : 76
Edad : 40
Ciudad - Pais : ARGENTINA
Version de Excel : 2003-2007
Fecha de inscripción : 03/09/2010

Volver arriba Ir abajo

Re: Verificar si dos libros estan abiertos y si no abrir ambos

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


 
Permisos de este foro:
No puedes responder a temas en este foro.