Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Marko für alle Dateien aus einer Liste ausführen

Marko für alle Dateien aus einer Liste ausführen
27.05.2013 18:44:57
Lola
Liebes Forum,
ich muss für ca. 300 Dateien, die sich alle in einem Verzeichnis befinden, den Passwortschutz aufheben.
Die Namen der Dateien habe ich in einer Datei in den Zellen A2 bis A301 schon ausgelesen. Das Marko, das den Passwortwortschutz aufhebt, habe ich auch.
Allerdings verzweifele ich gerade an dem Loop, der mir dieses Marko für meine 300 Einträge ausführt.
Kann mir bitte jemand helfen?
Vielen Dank und
sehr viele und sehr liebe Grüße
Lola

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Marko für alle Dateien aus einer Liste ausführen
27.05.2013 19:39:09
Uduuh
Hallo,
was für Dateien? Excel-Mappen?
Das Marko, das den Passwortwortschutz aufhebt, habe ich auch.
Zeig's mal.
Gruß aus’m Pott
Udo

AW: Marko für alle Dateien aus einer Liste ausführen
28.05.2013 10:45:11
Lola
Hallo, Udo,
ja, es sind lauter Excel-Dateien.
Das Marko zum Speichern ohne Passwort sieht so aus:
Sub PW_EX()
Workbooks.Open 'hier brauche ich den Loop, für den ich zu doof bin für alle Dateiennamen  _
aus den Zellen a2 bis a301', Password:="xxx"
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs ActiveWorkbook.Name, Password:=""
Application.DisplayAlerts = True
ActiveWorkbook.Close savechanges:=False
End Sub
Liebe Grüße aus dem heute überraschend sonnigen München
Lola

Anzeige
AW: Marko für alle Dateien aus einer Liste ausführen
28.05.2013 14:31:44
Tino
Hallo,
kannst mal diesen Code testen.
In der Statusbar kannst Du den verlauf verfolgen.
Am Schluss wird evtl. eine Fehlerliste ausgegeben,
zBsp. bei Schreibschutz wenn Datei verwendet wird oder die Datei nicht vorhanden ist.
Sub PW_EX()
Dim ArPath
Dim ExApp As Excel.Application
Dim n&, nMax&
Dim ArFehler(), i%

Const OeffnenKennwort$ = "xxx"
Const SchreibKennwort$ = ""

ArPath = Range("A2:B301")
Redim Preserve ArPath(1 To Ubound(ArPath), 1 To 1)

Set ExApp = New Excel.Application
ExApp.DisplayAlerts = False
ExApp.ScreenUpdating = False
ExApp.EnableEvents = False

nMax = Ubound(ArPath)
For n = 1 To nMax
    Application.StatusBar = "Bearbeite Datei " & n & " von " & nMax
    If ArPath(n, 1) <> "" Then
        If Dir(ArPath(n, 1), vbNormal) <> "" Then
            With ExApp.Workbooks.Open(Filename:=ArPath(n, 1), Password:=OeffnenKennwort, writeResPassword:=SchreibKennwort)
                If Not .ReadOnly Then
                  .Password = ""
                  .WritePassword = ""
                  .Close savechanges:=True
                Else
                    Redim Preserve ArFehler(i)
                    ArFehler(i) = .Name & " = 'Schreibgeschützt'"
                    i = i + 1
                    .Close savechanges:=False
                End If
            End With
        Else
            Redim Preserve ArFehler(i)
            ArFehler(i) = Right$(ArPath(n, 1), Len(ArPath(n, 1)) - _
                          InStrRev(ArPath(n, 1), "\")) & " = 'nicht gefunden'"
            i = i + 1
        End If
    End If
Next n
ExApp.Quit
Set ExApp = Nothing
Application.StatusBar = False

If i > 0 Then
    MsgBox Join(ArFehler, vbCr), vbCritical, "Fehler"
End If
End Sub
Gruß Tino

Anzeige
AW: Marko für alle Dateien aus einer Liste ausführen
28.05.2013 15:29:43
Lola
Lieber Tino,
ein Traum :-)
Am Anfang hat das Makro zwar behauptet, es kann die Datei nicht finden, obwohl ich
ChDir ThisWorkbook.Path
mit in den Code geschrieben habe.
Aber dann habe ich kurzerhand den kompletten Pfad zur Datei in die Spalte A kopiert und dann hat es wunderbar geklappt. Tausend Dank!!
Liebe Grüße
Lola
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige