Avisar cuando un libro está abierto.

27/07/2009 - 14:47 por José Rafael | Informe spam
Hola a todos:
Necesito la rutina para que me avise de que un libro ya está abierto y por
tanto no lo abra y en ese caso me pida la hoja y la celda donde me quiero
situar (con la hoja1 , celda A1 por defecto).
En el caso de que no esté abierto, lo abra y me pida también la hoja y la
celda donde me quiero situar.
Pongo el jemplo de la macro grabada:

Sub PEDIDO()
' PEDIDO Macro
' Macro grabada el 24/07/2009 por hes040
Workbooks.Open Filename:= _
"C:\Documents and Settings\hes040\Mis documentos\Tarifa de precios
Septiembre 2009 con plantilla de extracción.xls"
Sheets("Plantilla actual").Select
Range("P5").Select
End Sub

Otra cosa:
Con otros botones de la misma hoja y del mismo libro (Libro=Pantallas para
trabajar con el portátil", hoja "principal"), quisiera abrir por ejemplo
Word, Outlook, u otras aplicaciones como por ejemplo Adobe Reader, Windows
Media Player, etcc. ¿es posible? .. puede tener tambien una rutina de
prevención por intentar abrir lo que ya está abierto?..
Por cierto, la hoja "Principal" está llena de botones para hacer diversas
tareas llamando a las aplicaciones... ¿quizás sería mejor hacer un useform ó
una barra de botones especial?... cualquier información, código para copiar
o ejemplos sería de mucho agradecer.
Gracias por todo
Saludos
José Rafael

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
27/07/2009 - 23:08 | Informe spam
hola, José Rafael !

revisa por puntos al final del presente...
(no es conveniente tratar varios asuntos de distinta naturaleza en un solo mensaje)

__ 1 __
Necesito la rutina para que me avise de que un libro ya esta abierto y por tanto no lo abra
y en ese caso me pida la hoja y la celda donde me quiero situar (con la hoja1, celda A1 por defecto).
En el caso de que no este abierto, lo abra y me pida también la hoja y la celda donde me quiero situar.
Pongo el jemplo de la macro grabada:
Sub PEDIDO()
' PEDIDO Macro
' Macro grabada el 24/07/2009 por hes040
Workbooks.Open Filename:= _
"C:\Documents and Settings\hes040\Mis documentos\Tarifa de precios Septiembre 2009 con plantilla de extracción.xls"
Sheets("Plantilla actual").Select
Range("P5").Select
End Sub


__ 2 __
Otra cosa:
Con otros botones de la misma hoja y del mismo libro (Libro=Pantallas para trabajar con el portatil", hoja "principal")
quisiera abrir por ejemplo Word, Outlook, u otras aplicaciones como por ejemplo Adobe Reader, Windows Media Player, etcc. es posible?


__ 3 __
puede tener tambien una rutina de prevención por intentar abrir lo que ya esta abierto?..


__ 4 __
Por cierto, la hoja "Principal" esta llena de botones para hacer diversas tareas llamando a las aplicaciones...
quizas seria mejor hacer un useform o una barra de botones especial?...
cualquier informacion, codigo para copiar o ejemplos seria de mucho agradecer.



1) 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 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"

- 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 y que si pretendes...
solicitar cual hoja quiere el usuario activar, podria inidicar alguna que no exista (por equivocacion) y causar errores (?)

2) para abrir otras aplicaciones, prueba con los hipervinculos (o provee informacion con suficiente nivel de detalles ?)

3) (creo que) ya esta cubierto con la propuesta del punto 1 (???)

4) para este punto (definitivamente) no proporcionas la suficiente informacion (?????)

saludos,
hector.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida