Visual Basic para Aplicaciones - Condicionante para un libro abierto

Life is soft - evento anual de software empresarial
 
Vista:

Condicionante para un libro abierto

Publicado por claudio vega (2 intervenciones) el 25/05/2020 21:14:02
Hola estimados, me gustaría establecer un condicionante que me identifique si un libro de Excel en especifico este abierto. Si esta abierto que prosiga con el código, pero si no esta abierto, me diga un mensaje de error especificando que debo abrir el libro de Excel que se requiere trabajar.

Quedo atento ante cualquier respuesta, muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de RET
Val: 117
Bronce
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Condicionante para un libro abierto

Publicado por RET (32 intervenciones) el 26/05/2020 10:41:59
Añade estas líneas a tu Sub:

1
2
3
4
If ArchivoAbierto(NOMBRE_LIBRO) = False Then
   MsgBox "Debes abrir el libro " & NOMBRE_LIBRO & " para poder continuar", vbExclamation+vbOkOnly, "Falta libro"
   Exit Sub
end if

y esta función

1
2
3
4
5
6
7
8
Function ArchivoAbierto(NombreArchivo) As Boolean 'funcion que detecta si esta abierto :D
    Abierto = False
    For i = 1 To Windows.Count
        If Windows(i).Caption = NombreArchivo Then
            ArchivoAbierto = True
        End If
    Next
End Function

IMF_RET
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Condicionante para un libro abierto

Publicado por Claudio (2 intervenciones) el 26/05/2020 14:32:20
Muchas gracias, no habria imaginado un codigo asi. Una ultima consulta, dentro de lis parentesis el nombre de archivo de ir de la siguiente manera ("totales Opex") o no son necesarias las comillas?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de RET
Val: 117
Bronce
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Condicionante para un libro abierto

Publicado por RET (32 intervenciones) el 26/05/2020 15:17:49
Es un string, así que, entre comillas


IMF_RET
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 1.100
Oro
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Condicionante para un libro abierto

Publicado por Antoni Masana (374 intervenciones) el 26/05/2020 15:41:21
Esta solución solo sirve si lo tiene abierto tu equipo, si esta compartido en red y lo tiene otro usuario se hace de otra forma.

1
2
3
4
5
6
Workbooks.Open Filename:=File, Origin:=xlWindows
If ActiveWorkbook.ReadOnly Then
    '  --- Libro abierto por otro usuario
Else
    ' --- Aquí se puede modificar y guardar
End If


Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de RET
Val: 117
Bronce
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Condicionante para un libro abierto

Publicado por RET (32 intervenciones) el 26/05/2020 15:59:03
Yo no he visto nada al respecto de redes y compartidos. Solo si esta abierto o no.

Efectivamente, depende de lo que se quiera, se hace de otra forma, o de muchas diferentes.


Saludos,

IMF_RET
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar