Excel 2007, Arbeitsmappe per VBA entsperren, Inhalt hinzufügen, wieder sperren und speichern.
Hallo,
vielleicht kann mir ja einer der VBA-Experten weiterhelfen:
Ich habe eine Excel-Datei (gespeichert als .xls) mit 15 Arbeitsblättern. Die Arbeitsmappe und die Arbeitsblätter sind passwort geschützt (gleiches Passwort). In allen Arbeitsblätter soll in der Fußzeile links unten die Versionsnummer der Datei (des Formulars) eingetragen werden (z.B. V.1.1.). Die Versionsnummer wird manuell vergeben. Bislang mache ich das wegen fehlender VBA-Kenntnisse händisch. D.h.Arbeitsblatt entsperren, zur Fußzeile wechseln, die Nummer eintragen bzw. überschreiben, dann wieder sperren und dann weiter mit dem nächsten Arbeitsblatt. Gibt es eine Möglichkeit, dies über VBA zu automatisieren und könnte mir dabei jemand helfen?
Viele Grüße
Ulmer
vielleicht kann mir ja einer der VBA-Experten weiterhelfen:
Ich habe eine Excel-Datei (gespeichert als .xls) mit 15 Arbeitsblättern. Die Arbeitsmappe und die Arbeitsblätter sind passwort geschützt (gleiches Passwort). In allen Arbeitsblätter soll in der Fußzeile links unten die Versionsnummer der Datei (des Formulars) eingetragen werden (z.B. V.1.1.). Die Versionsnummer wird manuell vergeben. Bislang mache ich das wegen fehlender VBA-Kenntnisse händisch. D.h.Arbeitsblatt entsperren, zur Fußzeile wechseln, die Nummer eintragen bzw. überschreiben, dann wieder sperren und dann weiter mit dem nächsten Arbeitsblatt. Gibt es eine Möglichkeit, dies über VBA zu automatisieren und könnte mir dabei jemand helfen?
Viele Grüße
Ulmer
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 137571
Url: https://administrator.de/contentid/137571
Ausgedruckt am: 22.11.2024 um 16:11 Uhr
6 Kommentare
Neuester Kommentar
Hallo Ulmer!
Sollte sich ziemlich direkt durch das Aufzeichnen eines Makros zunächst für eine Mappe und das nachfolgende Einbetten (erste zwei Zeilen unmittelbar nach "
durchführen lassen.
Grüße
bastla
Sollte sich ziemlich direkt durch das Aufzeichnen eines Makros zunächst für eine Mappe und das nachfolgende Einbetten (erste zwei Zeilen unmittelbar nach "
Sub Makro1()
", letzte zwei Zeilen unmittelbar vor "End Sub
") des entstandenen Makros in eine Schleife der ArtFor Each Blatt In Worksheets()
Blatt.Activate
'hier Dein Makro-Code
Next
Worksheets(1).Activate
Grüße
bastla
Hallo Ulmer, Hallo bastla!
Wobei in der Each-Schleife auch noch die Anweisungen zum sperren und entsperren stehen:
Das Passwort könnte dabei im Code stehen, per InputBox unverschlüsselt (Reiner Text) oder per UserForm verschlüsselt (* * * *) abgefragt werden.
Gruß Dieter
Wobei in der Each-Schleife auch noch die Anweisungen zum sperren und entsperren stehen:
For Each Blatt in Worksheets()
Blatt.Unprotect Password:="Passwort"
.....
.....
Blatt.Protect Password:="Passwort"
Next
Gruß Dieter
@76109
Danke für die Ergänzung - das Entsperren des Blattes wird zwar beim Aufzeichnen des Makros auch erfasst als
(diese Zeile kann dann im aufgezeichneten Makro ebenso entfernt werden wie das Gegenstück "
Annahme dabei: Alle Blätter werden mit dem selben Passwort geschützt - anderenfalls müsste die Reihenfolge der Zeilen 1 und 2 vertauscht werden.
Grüße
bastla
Danke für die Ergänzung - das Entsperren des Blattes wird zwar beim Aufzeichnen des Makros auch erfasst als
ActiveSheet.Unprotect
ActiveSheet.Protect + einige Paramete
" am Ende ), die Übergabe des Passworts muss allerdings im Code ergänzt werden.Das Passwort könnte dabei im Code stehen, per InputBox unverschlüsselt (Reiner Text) oder per UserForm verschlüsselt (* * * *) abgefragt werden.
Mit der Variante "InputBox" würde das dann so aussehen:PW = InputBox("Bitte das Blattschutz-Passwort eingeben!", "Passwort eingeben")
For Each Blatt in Worksheets()
Blatt.Unprotect Password:=PW
.....
.....
Blatt.Protect Password:=PW
Next
Grüße
bastla
@bastla
Gruß Dieter
Zitat von @bastla:
Danke für die Ergänzung - das Entsperren des Blattes wird zwar beim Aufzeichnen des Makros auch erfasst als.....
Gern geschehenDanke für die Ergänzung - das Entsperren des Blattes wird zwar beim Aufzeichnen des Makros auch erfasst als.....
Annahme dabei: Alle Blätter werden mit dem selben Passwort geschützt - anderenfalls müsste die Reihenfolge der
Zeilen 1 und 2 vertauscht werden.
In dem Fall, was ich schon als sehr ungewöhnlich empfinde, müsste man dann aber das aktuelle Blatt im Text der InputBox mit angeben, sonst weiß man ja nicht, welches Blatt gerade bearbeitet wirdZeilen 1 und 2 vertauscht werden.
Gruß Dieter
@76109
Die "
Grüße
bastla
müsste man dann aber das aktuelle Blatt im Text der InputBox mit angeben, sonst weiß man ja nicht, welches Blatt gerade bearbeitet wird
Ebenfalls sehr sinnvoll (durch "Blatt.Activate
" wird zwar auf die jeweilige Tabelle gewechselt, allerdings erst einen Schritt später) ...Die "
InputBox
" könnte dann so aufgerufen werden:PW = InputBox("Bitte das Blattschutz-Passwort für " & Blatt.Name & " eingeben!", "Passwort für " & Blatt.Name)
bastla