Passwortgeschützte Dateien auslesen

Hallo zusammen,

ich steh gerade vor folgender Problematik, vielleicht hat mir jemand eine Idee …

Ich habe ein Excel-Tabelle, diese liest aus mehreren Excel-Dateien Daten aus. Davon haben 2 Dateien kein Passwort, 5 Dateien mit Passwort yyy und 1 Datei mit Passwort xxx.

Zum Update der Links verwende ich folgende SUB,damit ich nicht immer das Passwort eingeben muss.

Sub UpdLinks()
alinks = ActiveWorkbook.LinkSources()
Application.ScreenUpdating = False

If Not IsEmpty(alinks) Then
For i = 1 To UBound(alinks)
Workbooks.Open Filename:=alinks(i), Password:=„yyy“
ActiveWorkbook.Close SaveChanges:=False
Next i
End If
Application.ScreenUpdating = True
MsgBox "Links sind fertig
End Sub

Damit kann ich jetzt die Dateien ohne Passwort und die Dateien mit Passwort yyy auslesen.
Bei der einen Datei mit xxx scheitere ich logischerweise, weil das Passwort nicht passt.
Habe schon versucht den 1004er-Fehler im ErrorHandler abzufangen,aber ich komm net weiter. Irgendwie steht mir einer auf der Leitung.

Hat mir jemand einen Tipp wie ich die eine Datei auch noch updaten kann ? Ich möchte nicht jede Datei einzeln abfragen, die Schleife wäre mir schon wichtig.
Es könnten weitere Dateien zum Einbinden hinzukommen, aber die haben entweder Passwort xxx oder yyy oder kein Passwort.

Über jeden Tipp wäre ich dankbar.

Gruss
Mueffel

Ich habe ein Excel-Tabelle, diese liest aus mehreren
Excel-Dateien Daten aus. Davon haben 2 Dateien kein Passwort,
5 Dateien mit Passwort yyy und 1 Datei mit Passwort xxx.

Damit kann ich jetzt die Dateien ohne Passwort und die Dateien
mit Passwort yyy auslesen.
Bei der einen Datei mit xxx scheitere ich logischerweise, weil
das Passwort nicht passt.

Hallo Mueffel,

ich habe keinen Schimmer was passiert wenn du eine Datei mit Passwort öffnest und vba prüft das mit einem passwort.
Getestet habe ich auch nicht, siehe Kommentar in Zeile 3.

Sub UpdLinks()
Dim alinks, i
alinks = ActiveWorkbook.LinkSources() 'Das klappt? \*staun\*
On Error Resume Next
Application.ScreenUpdating = False
If Not IsEmpty(alinks) Then
 For i = 1 To UBound(alinks)
 Workbooks.Open Filename:=alinks(i), Password:="yyy"
 If Err.Number \> 0 Then
 Err.Clear
 Workbooks.Open Filename:=alinks(i), Password:="xxx"
 End If
 If Err.Number = 0 Then

 '...
 'Dein Code
 '...
 ActiveWorkbook.Close SaveChanges:=False
 Else
 Err.Clear
 MsgBox "nix zu machen, fremdes PW"
 End If
 Next i
End If
Application.ScreenUpdating = True
MsgBox "Links sind fertig, jetzt kommen die Rechts \*gg\*"
End Sub

Gruß
Reinhard