Forums Últimos mensajes - Powered by IBM
 

ARCHIVO ABIERTO

03/10/2008 - 18:59 por Jesus | Informe spam
Como puedo detectar cuando un usuario tiene abierto un archivo en la red.
Utilice Freefile, workbooks(), pero no se como hacerlo. Alguien me puede
ayudar.
 

Leer las respuestas

#1 Héctor Miguel
03/10/2008 - 19:11 | Informe spam
hola, Jesus !

Como puedo detectar cuando un usuario tiene abierto un archivo en la red.
Utilice Freefile, workbooks(), pero no se como hacerlo...



voy a suponer que es una accion que se va a repetir varias veces en algun proceso
(con lo que seria mejor definir una funcion personalizada y pasarle el nombre del libro)

si cualquier duda (o informacion adicional)... comentas?
saludos,
hector.

1) si NO se trata de archivos en red...
en un modulo de codigo normal ==Function EsLibroAbierto(Libro As String) As Boolean
On Error Resume Next
EsLibroAbierto = Len(Workbooks(Libro).Name)
End Function

-> la forma de llamar a esta funcion si quisierar abrir "el libro" es +/- como sigue...
If Not EsLibroAbierto("nombre del libro.xls") Then Workbooks.Open "c:uta yombre del libro.xls"

2) si SON archivos en red...
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

-> la forma de llamar a esta funcion si quisierar abrir "el libro" es +/- como sigue...
If Not EsLibroAbierto("C:\Ruta y\Nombre del libro.xls") Then Workbooks.Open "C:\Ruta y\Nombre del libro.xls"

toma nota que en ambos casos el libro que se abre queda como libro activo

Preguntas similares