Grupos de Google ya no admite nuevas publicaciones ni suscripciones de Usenet. El contenido anterior sigue siendo visible.

Código para saber si un libro esta abierto

Visto 367 veces
Saltar al primer mensaje no leído

Esteban Dido

no leída,
27 jun 2005, 17:13:2127/6/05
a
Hola,
¿Cómo se puede saber por código sin un determinado libro está abierto?
Gracias
--
Saludos


Héctor Miguel

no leída,
27 jun 2005, 17:29:3327/6/05
a
hola, Esteban !

> ... saber por codigo sin un determinado libro esta abierto?

si vas a usar 'con frecuencia' la busqueda de libros [en la sesion]...
[te sugiero] usa una funcion personalizada y 'preguntale' [en el codigo] por el nombre del libro...
-te expongo un ejemplo al final-

si cualquier duda... ¿comentas?
saludos,
hector.
=== en un modulo de codigo 'normal' ===
Function EsLibroAbierto(ByVal Nombre As String) As Boolean
Dim Libro As Workbook
On Error Resume Next
Set Libro = Workbooks(Nombre)
EsLibroAbierto = (Not Libro Is Nothing)
Set Libro = Nothing
End Function
' y una macro de +/- como le podrias dar 'uso' ...
Sub CerrarLibroAbierto()
Dim EsteLibro As String
EsteLibro = "X"
If EsLibroAbierto(EsteLibro) Then
MsgBox "El libro " & EsteLibro & " se está cerrando..."
' aqui el codigo necesario para cerrarlo... '
Else
MsgBox "El libro " & EsteLibro & " está ""ausente""."
End If
End Sub


Héctor Miguel

no leída,
27 jun 2005, 17:35:2127/6/05
a
hola, Esteban !

> ... saber por codigo sin un determinado libro esta abierto?

otra posibilidad [anque tu consulta no lo menciona] seria que el 'determinado' libro este en red -?-
para lo cual, seria necesario modificar la 'forma de acceso al archivo' en la funcion [EsLibroAbierto]
[te expongo un ejemplo al final]
-> toma nota de que sera necesario especificar la ruta 'completa' el archivo 'escaneado' <-

si cualquier duda... comentas?
saludos,
hector.
=== en un modulo de codigo 'normal' ===

Function EsLibroAbierto(Nombre As String) As Boolean
Dim Archivo As Byte: Archivo = FreeFile: On Error Resume Next
Open Nombre For Binary Access Read Write Lock Read Write As #Archivo
Close #Archivo
If Err.Number = 0 Then Exit Function
EsLibroAbierto = True: Err.Clear
End Function

una forma de 'llamarla' dentro de otra/s parte/s del codigo seria +/- como sigue...
If EsLibroAbierto("C:\Ruta y\Nombre del archivo.xls") Then...


Esteban Dido

no leída,
27 jun 2005, 17:45:1127/6/05
a
Hola Héctor,
¿No hay algo más sencillo?. Sólo quiero saber si un archivo, (por ejemplo
MiLibro.xls) está abierto, para efectos de leer/escribir algo en una hoja de
ese libro. El resto del código lo tengo, sólo que necesito saber si está
abierto, para que lo abra en caso de estar cerrado y no lo abra en caso
contrario.
No, no está en red.

Gracias y Saludos


"Héctor Miguel" <NOhemio...@PLShotmail.com> escribió en el mensaje
news:uvElS91...@TK2MSFTNGP12.phx.gbl...

Héctor Miguel

no leída,
27 jun 2005, 18:20:0227/6/05
a
hola, Esteban !

> ... algo mas sencillo?
> ... saber si un archivo, (por ejemplo MiLibro.xls) esta abierto, para... leer/escribir algo en... ese libro
> ... que lo abra en caso de estar cerrado y no lo abra en caso contrario.

mas sencillo ??? pues... [creo que] usando SOLO las partes 'esenciales' del codigo
p.e. [omitiendo varios 'convencionalismos' al programar como declarar variables y etc.]...
[... otras partes de tu codigo ...]
On Error Resume Next
Set MiLIbro = Workbooks("MiLibro")
If MiLIbro Is Nothing Then Workbooks.Open "C:\Ruta y\carpetas donde esta\MiLibro.xls"
[... aqui sigue tu macro de manera normal... ]

en caso de que 'MiLibro' estuviera cerrado... lo abre ->y lo deja como activo<- <= OJO
si necesitas que el libro 'activo' siga siendo el que contiene la macro en ejecucion... modifica a...
If MiLIbro Is Nothing Then Workbooks.Open _
"C:\Ruta y\carpetas donde esta\MiLibro.xls": ThisWorkbook.Activate

Esteban Dido

no leída,
27 jun 2005, 18:51:1227/6/05
a
Hola, H
¡No sé qué estoy haciendo mal!. No me funciona. Me da error 9 Subíndice
fuera del intervalo.
????????

Saludos
"Héctor Miguel" <NOhemio...@PLShotmail.com> escribió en el mensaje

news:e7P8fZ2e...@TK2MSFTNGP09.phx.gbl...

Héctor Miguel

no leída,
27 jun 2005, 19:12:4627/6/05
a
hola, Esteban !

> No se que... No me funciona... da error 9 Subindice fuera del intervalo.

significa que no se encontro un elemento dentro de una coleccion de objetos :(
[probablemente] necesitaras 'completar' el nombre del archivo CON la extension ".xls" -?-
p.e. en lugar de utilizar Workbooks("MiLibro") usa: Workbooks("MiLibro.xls")

comentas?
saludos,
hector.


Esteban Dido

no leída,
27 jun 2005, 19:30:0127/6/05
a
Hola H,
Está con la extensión .xls
?????

--


Saludos
"Héctor Miguel" <NOhemio...@PLShotmail.com> escribió en el mensaje

news:urd#922eFH...@TK2MSFTNGP10.phx.gbl...

Héctor Miguel

no leída,
27 jun 2005, 19:45:4327/6/05
a
hola, Esteban !

> Esta con la extension .xls ?????

[entonces]... que dice la linea donde [o en cual de ellas] 'salta el error' ?

comentas?
saludos,
hector.


Esteban Dido

no leída,
28 jun 2005, 19:23:5928/6/05
a
Hola H,
Ya ha quedado solucionado. Gracias por tu atención. Tenía un error de tipeo
en una línea.
E.D.

--
Saludos
"Héctor Miguel" <NOhemio...@PLShotmail.com> escribió en el mensaje
news:OY3OYJ3e...@TK2MSFTNGP12.phx.gbl...
0 mensajes nuevos