Proteger con contraseña cogida de una celda

Tengo un código en el que se abren todos los excels de una carpeta y se les protege con una contraseña. El problema es que la contraseña tiene que introducirse en el código y yo quiero introducirla en una celda del excel y que la contraseña se pase de ahí al código. Ésto es lo que tengo.

Public Function Listado(Ruta, Fila) As Variant
Dim Nm As String
Dim rutaLocal As String, Diré As String
Dim Matrix As Variant
Dim LibroLoop As String
LibroLoop = ActiveWorkbook.name
rutaLocal = [B2].Text 'Workbooks(ActiveWorkbook.Name).Path
Diré = ""
Nm = Dir(Ruta & "*.xls")
Do Until Nm = ""
If Nm <> LibroLoop And Nm <> "mentat.proc" And Nm <> "mentat.log" Then
If (GetAttr(Ruta & Nm)) = vbDirectory Then
'Este es un subdirectorio que tenemos que explorar
Else
Cells(Fila, 1).Value = Nm
Cells(Fila, 2).Value = Tiempo((Ruta & Nm))
Matrix = Split(Ruta, rutaLocal)
Cells(Fila, 3).Value = Left(Ruta, Len(Ruta) - 1) & Matrix(1)
Fila = Fila + 1
End If
End If
' Protege las hojas con contraseña
Workbooks.Open Filename:=Ruta & "\" & Nm
For Each sht In ActiveWorkbook.Sheets
sht.Protect Password:="test"
Next sht
ActiveWorkbook.Sabe
ActiveWorkbook.Close
Salto:
Nm = Dir
Loop
Listado = Fila
End Function

¿Qué debería cambiar? He probado con

For Each sht In ActiveWorkbook.Sheets
MiRuta = ActiveWorkbook.Password
sht.Protect Password:=Range("C6").Value

Pero no funciona. MUCHAS GRACIAS POR VUESTRO TIEMPO.

Añade tu respuesta

Haz clic para o