Ricerca file con password
Hai un problema con Excel? 
Ricerca file con password
di riccardo57 (utente non iscritto) data: 25/07/2014 11:12:46
Buongiorno,
ho una serie di file, alcuni protetti con password (uan password diversa per ogni file), altri realizzati in precedenza senza password.
Vorrei proteggere solo i file senza password: quindi il problema è verificare se un file è protetto o meno e nel secondo casso applicare una password (spezzone di codice già realizzato).
Ho provato a utilizzare la proprietà "haspassword", ma mi sembra che funzioni solo con Activeworkbook.haspassword.
Come devo fare se voglio utilizzare questa proprietà su di un file non ancora aperto? (es: Workbook(NomeFile).haspassword)
Forse che la variabile NomeFile file deve essere completo del percorso?
Comunque a me non funziona.
Grazie
di isy data: 25/07/2014 11:41:27
Ciao
Cit: Come devo fare se voglio utilizzare questa proprietà su di un file non ancora aperto?
Non puoi ottenere l'informazione senza aprire il file
Puoi selezionare un percorso ed ottenere la lista di file protetti
Vedi allegato
Option Explicit
Sub CheckWbook()
Dim Value As String, a As Single
Dim myfolder As String
On Error Resume Next
With Application.FileDialog(msoFileDialogFolderPicker)
.Show
myfolder = .SelectedItems(1) & ""
End With
If myfolder = "" Then Exit Sub
Application.DisplayAlerts = False
Range("C4") = myfolder
Range("B7:C" & Rows.Count) = ""
a = 0
Value = Dir(myfolder)
Do Until Value = ""
If Value = "." Or Value = ".." Then
Else
If Right(Value, 3) = "xls" Or Right(Value, 4) = "xlsx" Or Right(Value, 4) = "xlsm" Then
On Error Resume Next
Workbooks.Open Filename:=myfolder & Value, Password:="zzzzzzzzzzzz"
If Err.Number > 0 Then
Range("C7").Offset(a, 0).Value = "Yes"
End If
Workbooks(Value).Close False
On Error GoTo 0
Range("B7").Offset(a, 0).Value = Value
a = a + 1
End If
End If
Value = Dir
Loop
Application.DisplayAlerts = True
End Sub
|
di riccardo57 (utente non iscritto) data: 25/07/2014 12:01:05
Grazie per la risposta, ma la domanda sorge spontanea.
A cosa serve "haspassword" se lo posso utilizzare solo su un file già aperto?
E' evidente che se lo posso aprire, conosco già a priori se il file è protetto o meno.
Comunque dal codice che mi hai inviato poteri tramite l'struzione
if Err.Number = 1004 then
........ codice per utilizzare la password di apertura
else
....... codice per applicare una nuova password
E' corretto?
Grazie ancora
di isy data: 25/07/2014 12:37:56
Il metodo HasPassword si riferisce sempre ad un foglio aperto
Puoi utilizzare sia l'elenco che hai ottenuto per inserire un ciclo che intercettare l'errore come hai indicato in:
else
....... codice per applicare una nuova password
- I hope it helps
'Questo esempio visualizza un messaggio se la cartella di lavoro attivo ha una password di protezione.
If ActiveWorkbook.HasPassword = True Then
MsgBox "Remember to obtain the workbook password" & Chr(13) & _
" from the Network Administrator."
End If |
di riccardo57 (utente non iscritto) data: 25/07/2014 12:56:20
Ok, capito.
Grazie
Vuoi Approfondire?