Macro en Excel para ir a Word

Hola a todos, una pregunta, como podría crear una macro que cuando un usuario seleccione un valor de una lista desplegable, al dar click en un botón IR, se abra un documento de word protegido con contraseña,
Ejemplo, en la lista están los valores de Perros, Gatos, Liebres, entonces el personaje selecciona de la lista "Liebres", da click en IR y automáticamente se abre un documento de Word llamado Liebres, pero este documento pide contraseña al abrirse, puede la macro incluir la orden para desproteger el archivo, ¿sirve la orden Unprotect que se usa para Sheets de Excel?
Muchas, muchísimas gracias!

1 respuesta

Respuesta
1
Sub Botón_AlHacerClic()
Dim oWord As Word.Application
Set oWord = CreateObject("Word.Application")
nombre='que lo coja de la lista desplegable'
oWord.Documents.Open ActiveWorkbook.Path + "c:\Mis Documentos\" + nombre, passwordDocument:="contraseña"
oWord.Visible = True
End Sub
Te explico el código. Primero creo el objeto oword para llamar a una aplicación de word. OJO! Esto te funcionara si en las macros activas la referencia a la librería de word. En el editor de visual vete a herramientas, referencias y selecciona Microsoft Word 9.0 object library.
Luego le asigno a la variable nombre el nombre del libro que quieres abrir que dependerá de donde lo cojas de la lista, (no dices si la lista es una casilla de validación, o es un control de formulario). Si no sabes como hacerlo escríbeme.
Por ultimo abro el libro utilizando oword, indicándole la ruta que ha de seguir (Por ejemplo, yo he puesto mis documentos) y el nombre del archivo que lo coge de la lista del cual previamente lo hemos puesto dentro de la variable nombre. Luego para indicarle que esta protegido por contraseña le indicas cual es esta contraseña con passworddocument.
Finalmente hacemos visible la aplicación de word, sino se abriría pero no se podría ver.
Prueba si te funciona, ya me dirás si tienes alguna duda
Primero que todo, gracias por el tiempo dedicado a la duda, segundo, no necesito crear el archivo de Word, se supone que ya existe. Lo que necesito es que al seleccionar el valor de la celda (datos/validación/lista desplegable), se abra un archivo de Word con el mismo nombre escrito en la celda, obviamente yo ya cree todos los archivos y puse solamente sus nombres en la lista, traté de hacer algo, pero evidentemente no se, así que necesitaría si eres tan amable me digas que hice mal, y como podría ponerlo a funcionar, así es la macro que adapte a tu orden, teniendo en cuenta que los archivos de Word van exactamente en al misma carpeta que mi archivo de Excel
Sub verarchivo()
Dim oWord As Word.Application
nomfile = Sheets("Menu").Range("CELDALISTA")
oWord.Documents.Open ActiveWorkbook.Path & "\" & nomfile
passwordDocument "abc"
oWord.Visible = True
End Sub
Cuando la corro, me dice que Se ha producido el error 91 en tiempo de ejecución, Variable de objeto o bloque With no establecido
Muchas gracias!
Te falta incluir la linea de codigo que crea el objeto;
Set oWord = CreateObject("Word.Application")
Ponla después de declarar la variable oword, es decir después de dim oword as word. Application. De esta forma seguro que te funcionara.
Hola viejo, evidentemente, ya abren los archivos de Word, ahora, nunca me toma la contraseña, ¿qué sera? Pues la idea es que el usuario vea el contenido del archivo, pero solo pueda abrirlo mediante excel, ahí te mando la macro tal y como la tengo
Sub VerDocumentos()
Dim oWord As Word.Application
Set oWord = CreateObject("Word.Application")
nomfile = Sheets("Análisis").Range("NOMANALISIS")
oWord.Documents.Open ActiveWorkbook.Path & "\Analisis\" & nomfile
passwordDocument = "abc"
oWord.Visible = True
End Sub
¿P.D.Vos sabes si es posible hacer visible de forma permanente la flechita que aparece cuando das click en una celda con lista desplegable?
Gracias!
Lo del password no son dos lineas, sino que estan en una sola, pero aqui se ve cortado la linea entera es;
oWord.Documents.Open ActiveWorkbook.Path & "\Analisis\" & nomfile,
passwordDocument:= "abc"
Es decir, después de nomfile tienes que añadir una coma y passwordDocument:= "abc" No te olvides de los dos puntos.
Lo de la flechita, si lo haces mediante validación solo se vera si la celda esta seleccionada. Otra opción sería hacer la lista mediante un formulario. Si te interesa pero deberías cambiar el código y la estructura de la hoja. Si te interesa cierra la pregunta y pregúntamelo en una nueva.
Muchísimas gracias mi hermano, la verdad funciona de maravilla y perdoná tanta pregunta, lo del formulario me imagino que es con un ComboBox, y por ahora lo pienso dejar así, con la celda, mil y mil gracias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas