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 )
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…
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?
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.
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