Procedimiento VBA

21/09/2006 - 13:35 por Fernando | Informe spam
Hola,

Mi pregunta es la siguiente ¿Que instrucción debería utilizar para evaluar
si un libro de trabajo está abierto? Me explico.
Tengo creado un procedimiento en un módulo de un libro de trabajo que toma
los datos de otro libro de trabajo. Yo QUIERO que para poder capturar los
datos de ese libro se tenga que obligatoriamente abrir el libro de trabajo de
origen. Por eso, quiero crear una instrucción en el procedimiento del libro
de destino que evalúe si el libro de trabajo de origen está abierto ó
cerrado. Si está abierto continúa con el resto de instrucciones pero si está
cerrado con la instrucción GOTO redireccionarle a una etiqueta que produzca
un mensaje al usuario (MsgBox) diciendole que debe abrir el libro antes.

Espero haberme explicado correctamente.
Muchas gracias y un saludo,

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
21/09/2006 - 21:23 | Informe spam
hola, Fernando !

... Que instruccion deberia utilizar para evaluar si un libro de trabajo esta abierto? [...]



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(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

=> la forma de 'llamar' a esta funcion es +/- como sigue...
If Not EsLibroAbierto("Nombre del libro.xls") Then Workbooks.Open "C:\Ruta y\Nombre 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 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<-
Respuesta Responder a este mensaje
#2 Gabriel Raigosa
30/09/2006 - 18:33 | Informe spam
Carpeta
Descripción
Dirección

1
** Microsoft Excel *
http://esnips.com/web/GabrielRaigosa

2
Archivos para usar en clase
http://esnips.com/web/RaigosaClase

3
Fechas y Horas
http://esnips.com/web/RaigosaFechasHoras

4
Formato y Formato Condicional
http://esnips.com/web/RaigosaFormatos

5
Foro Excel
http://esnips.com/web/ForoExcel

6
Funciones de Busqueda
http://esnips.com/web/RaigosaBusqueda

7
Funciones de Texto
http://esnips.com/web/RaigosaTexto

8
Funciones Financieras
http://esnips.com/web/RaigosaFinancieras

9
Funciones Logicas
http://esnips.com/web/RaigosaLogicas

10
Graficos con Excel
http://esnips.com/web/RaigosaGraficos

11
Grupo (Sabados)
Privado

12
Grupo (Viernes)
Privado

13
Grupo Excel Septiembre
Privado

14
Juegos con Excel
http://esnips.com/web/RaigosaJuegosExcel

15
Macros con Excel
http://esnips.com/web/Macros-con-Excel

16
Manuales Excel
http://esnips.com/web/RaigosaManuales

17
Paginas WEB
http://esnips.com/web/RaigosaPaginasExcel

18
Practicas - XLS
http://esnips.com/web/RaigosaPracticasXLS

19
Tablas Dinámicas
http://esnips.com/web/RaigosaTablasDinamicas

20
TEST
http://esnips.com/web/GabrielRaigosa-test

21
Validación
http://esnips.com/web/RaigosaValidacion

22
Varios
http://esnips.com/web/RaigosaVarios

23
VBA - Visual Basic para Aplicaciones
http://esnips.com/web/RaigosaVBA



Gabriel Raigosa
http://esnips.com/web/Raigosa
http://esnips.com/web/ForoExcel
"Fernando" escribió en el mensaje
news:
| Hola,
|
| Mi pregunta es la siguiente ¿Que instrucción debería utilizar para evaluar
| si un libro de trabajo está abierto? Me explico.
| Tengo creado un procedimiento en un módulo de un libro de trabajo que toma
| los datos de otro libro de trabajo. Yo QUIERO que para poder capturar los
| datos de ese libro se tenga que obligatoriamente abrir el libro de trabajo
de
| origen. Por eso, quiero crear una instrucción en el procedimiento del
libro
| de destino que evalúe si el libro de trabajo de origen está abierto ó
| cerrado. Si está abierto continúa con el resto de instrucciones pero si
está
| cerrado con la instrucción GOTO redireccionarle a una etiqueta que
produzca
| un mensaje al usuario (MsgBox) diciendole que debe abrir el libro antes.
|
| Espero haberme explicado correctamente.
| Muchas gracias y un saludo,
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida