Validar si un documento ya esta abierto mediante macro

Nuevamente recurro a ustedes, antes que nada quiero agradecerles y darles el crédito por el apoyo que me han brindado en las dudas que me han surgido, ahora traigo un nuevo dilema.

Después de programar mi hoja y hacer pruebas descubrí un error y por mas que he intentado corregirlo no lo he conseguido, la situación es que abro unos documentos Word desde Excel (esto marcha perfecto) el detalle es que cuando das abrir un documento que ya se encuentra abierto Excel se trabaja he intentado que valide si esta abierto y si es así despliegue un mensaje que diga que ya esta abierto pero no lo he conseguido, la ruta de acceso la llamo desde un combobox de un formulario, el código que empleo para abrir los documento es el siguiente:

Sub abre_Word()
Dim w As Object

Set w = CreateObject("Word.application")
Set documento = w.Documents.Open(abrirdocumento.ComboBox1.Value)
w.Visible = True
MsgBox "El documento " & abrirdocumento.ComboBox1.Text & " esta abierto", vbInformation

End Sub

2 respuestas

Respuesta
1

Bueno después de mucho leer y hacer una infinidad de pruebas y errores, logre por fin logre encontrar la solución a mi problema, cabe mencionar que el código original no sutoria mía pero con unos cuantos cambios logre funcionara a la perfección, dejare el linck con acceso a la pagina explico brevemente, primero se tenia que crear una función en donde se manejaran los errores que se producen al intentar abrir un documento que ya esta abierto, después se emplea esta función en el lugar donde se abre el documento, en mi caso un botón de userform, si el documento ya esta abierto detiene todos los errores y muestra un mensaje donde dice que ya esta abierto, con esto se evita que se trabe el Excel, obviamente si no esta abierto lo abre

El linck del código original es el siguiente validar documento

Lo dejo aquí por si a alguien le interesa o lo necesita, agradezco a los que respondieron y se tomaron el tiempo para intentar ayudarme.

Respuesta

[Hola Rafael. Inténtalo así.

Sub abre_Word()
Dim w As Object
Set w = CreateObject("Word.application")
Set documento = w.Documents.Open(abrirdocumento.ComboBox1.Value)
If w.Visible = True Then
'nada
Else
MsgBox "El documento " & abrirdocumento.ComboBox1.Text & " esta abierto", vbInformation
End If
End Sub

Carlos agradezco tu respuesta, pero no funciono después de  un tiempo de estas según procesando arroja el siguiente mensaje y se traba debo finalizarlo del administrador de tareas

[Hola Rafael. Entonces no te puedo ayudar con este tema, no tengo conocimiento del tema para ayudarte.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas