Intentar varias contraseñas desde VBA para abrir un libro

Tengo un archivo que lista los libros que tengo en determinada carpeta y desde allí los puedo abrir. Todos los archivos piden contraseña para ser abiertos, quisiera saber si es posible insertar un loop en el que ingrese las distintas contraseñas y al intentar abrir el archivo intente con cada una hasta que de la correcta.

Desde el evento Workbooks. Open se puede ingresar contraseña al ejecutarlo pero solo permite una, ahí es donde busco que intente con varias hasta que de con la correcta y abra el libro.

Este es el código que tengo para abrir el libro y desde el cual insertaría el loop:

Sub OpenFiles()
Dim Folderpath As String
Dim cell As Range
Dim r, LRow As Single
Dim CWB As Workbook

Folderpath = Range("B1").Value
Set CWB = ActiveWorkbook

If Right(Folderpath, 1) <> "\" Then
Folderpath = Folderpath & "\"
End If

For Each chkbx In ActiveSheet.CheckBoxes
If chkbx.Value = 1 Then
For r = 1 To Rows.Count
If Cells(r, 1).Top = chkbx.Top Then
Workbooks.Open Filename:=Folderpath & Range("A" & r).Value

Exit For
End If
Next r
CWB.Activate
End If
Next

End Sub

1 Respuesta

Respuesta
-1

No se si entendí bien lo que quiere hacer, en un form tengo un login para abrir un formulario principal. Y tengo el siguiente código, quizá pueda adaptarlo para abrir sus archivos.

If Trim(txtuser.Text) = "Admin" And (txtPass.Text) = "admin123" Or (txtPass.Text) = "Admin999" Then
        MsgBox "Acceso permititdo", vbInformation, "Ok"
        Unload Me
        UserForm1.Show
End If

Cualquier cosa comenta.

Hola. No no es un login.

Ya tengo un archivo el cual me lista los archivos dentro de una carpeta o directorio. Desde ese puedo seleccionarlos y mediante un boton abrir los archivos seleccionados.

Pasa que los archivos que guardo ahi y que necesito abrir tienen contraseña. Para no estar ingresando contraseña como paso adicional al abrirlos desde el botón o haciendo la transformación a XML para quitar las contraseñas quiero agregar dentro del código que tengo para abrir los archivos seleccionados (son seleccionados mediante checkbox) un loop que ingrese las distintas contraseñas que podría tener el archivo.

Por ejemplo si selecciono 2 archivos que haga el loop con las diferentes opciones de contraseña hasta que de con la correcta y lo abra y pase al siguiente y haga lo mismo.

Actualmente dí con el siguiente código pero me genera problema en lo siguiente:

1. Cuando selecciono el libro que le corresponde la primer contraseña no hay problema lo abre como quiero.

2. Cuando selecciono los libros que corresponden a las demas contraseñas (contraseña 2 al 5) me arroja "Run Time Error 1004" "Method 'Open' of Object 'Workbooks' failed.

3. Alcanza a abrir hasta dos libros cuando selecciono mas de uno pero arroja ese error al abrir el segundo.

No se si es posible dentro del código agregar el loop en el que me diga que si para el libro que seleccione la contraseña1 no es correcta intente la contraseña2 y así sucesivamente hasta que ingrese con la contraseña correcta.

Sub OpenFiles()
Dim Folderpath As String
Dim cell As Range
Dim r, LRow As Single
Dim CWB As Workbook
Dim contraseñas(1 To 5) As String

contraseñas(1) = "06laenroll"
contraseñas(2) = "08laenroll"
contraseñas(3) = "09laenroll"
contraseñas(4) = "10laenroll"
contraseñas(5) = "11laenroll"

Folderpath = Range("B1").Value
Set CWB = ActiveWorkbook

If Right(Folderpath, 1) <> "\" Then
Folderpath = Folderpath & "\"
End If

For Each chkbx In ActiveSheet.CheckBoxes
If chkbx.Value = 1 Then
For r = 1 To Rows.Count
If Cells(r, 1).Top = chkbx.Top Then
Workbooks.Open Filename:=Folderpath & Range("A" & r).Value, Password:=contraseñas()
Exit For
End If
Next r
CWB.Activate
End If
Next

End Sub

Puede compartir su archivo con datos ficticios y al menos 3 archivos para hacer la prueba y tratar de ayudarle

Hola

Este es el link

https://file.io/4tUxA5 

No esta el archivo en el link

https://anonfile.com/D6L7laJ2n2/Proyect_7z 

Este es el link

Intente hacer las pruebas con sus archivos que envió, pero me da un error por la ruta. Le agregue un botón más con este código e intente abrir 3 archivo y como ya tiene definida las contraseñas, va pidiendo cada contraseña y va abriendo los archivos, no se si esto le puede ayudar en algo. Otra cosa que no entendí es que si abre todos los archivos o dependiente del numero de archivos que desee abrir en casa situación.

Sub Abrir()
    Workbooks.Open "C:\Archivo1.xlsx"
    Workbooks.Open "C:\Archivo2.xlsx"
    Workbooks.Open "C:\Archivo3.xlsx"
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas