Passwortgeschützte Zellen aktualisieren

Hey Leute,

ich habe eine Excel Tabelle die Daten aus mehreren anderen Passwortgeschützten Dateien bezieht. Nun ist mein Problem das jede dieser anderen Dateien ein eigenes Passwort hat.
Nun hätte ich gerne ein Makro das alles auf einmal aktualisiert.

Bisher habe ich folgendes

Sub UpdLinks()
Dim alinks, i
alinks = ActiveWorkbook.LinkSources()
On Error Resume Next
Application.ScreenUpdating = False
If Not IsEmpty(alinks) Then
For i = 1 To UBound(alinks)
Workbooks.Open Filename:=alinks(i), Password:=„WR31“
If Err.Number > 0 Then
Err.Clear
Workbooks.Open Filename:=alinks(i), Password:=„SK20“
End If
If Err.Number > 0 Then
Err.Clear
Workbooks.Open Filename:=alinks(i), Password:=„SR11“
End If
If Err.Number = 0 Then
ActiveWorkbook.Close SaveChanges:=False
Else
Err.Clear
MsgBox „Aktualisierung konnte nicht abgeschlossen werden (Falsches Passwort?)“
End If
Next i
End If
Application.ScreenUpdating = True
MsgBox „Aktualisierung erfolgreich“
End Sub

(Habe ich auch von hier :smile:)

Das problem jetzt, mehr als 3 Passwörter kann ich nicht abfragen. Und da ich auch nicht so der Profi bin weiß ich grad überhaupt nicht mehr weiter…

Ich hoffe es kann mir jemand helfen…

Freundliche Grüße

Jan

Hallo Jan,

was meinst Du mit

Das problem jetzt, mehr als 3 Passwörter kann ich nicht
abfragen. Und da ich auch nicht so der Profi bin weiß ich grad
überhaupt nicht mehr weiter…

Heißt das, Du hast nur drei Passwörter, und wenn’s keines von denen ist, weißt Du auch nicht weiter? Oder heißt das, Du hättest noch einen größeren Pool an möglichen Passwörtern, nur Du weißt nicht, wie Du das in die bestehende Routine einbauen sollst?

Gruß, Manfred

Hallo Manfred

ich habe alle Passwörter (ca 30 Stck) nur in der Formel kann ich nur 3 Abfragen, die anderen ca. 27 müssten noch irgendwie in das Makro eingebunden werden.

Danke für deine Hilfe.

Gruß Jan

Hallo Jan,

gut, dann mach’s ungefähr so:

Sub UpdLinks()
 Dim alinks, i
 ' hier ---vv die Anzahl Deiner Passwörter eintragen
 Dim astrPW(30) as string
 Dim bError as boolean
 Dim intPW as integer
 Dim wbDatei as workbook

On Error GoTo ErrorHandler

 astrPW(1)="WR31"
 astrPW(2)="SK20"
 astrPW(3)="SR11"
 astrPW(4)="..." ' usw. alle setzen

alinks = ActiveWorkbook.LinkSources()
Application.ScreenUpdating = False
If Not IsEmpty(alinks) Then
For i = 1 To UBound(alinks)

 bError = True
 intPW=1
 do while bError and intpw

Wie immer ungetestet, könnte aber vielleicht hinhauen :wink:

Abgesehen davon sagst Du in jedem Fall am Ende "Aktualisierung erfolgreich", auch wenn Du vorher auf Fehler gelaufen bist. Das ist ein wenig unschön, aber nur Schmuck am Nachthemd...

Gruß, Manfred

Funktioniert Wunderbar 100 Punkte :smile:

Vielen dank.

Gruß Jan