Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Per VBA Datei speichern mit Passwort

Per VBA Datei speichern mit Passwort
14.09.2018 15:29:32
Harald
Hallo zusammen,
ich möchte per VBA 2 Sicherungsdateien mit Passwort "test" speichern.
Das ist der Code an dem ich bastele, es aber nicht hinbekomme.
Was mache ich falsch?
Könnte mir jemand die komplett fertigen Codes liefern?
Einmal Speicherung als XLSM-Datei mit Makros und einmal Speicherung als XLSX- Datei ohne Makros.
ActiveWorkbook.SaveCopyAs Filename:="F:\löschen\Speichern_mit_Passwort.xlsm", FileFormat:=xlOpenXMLWorkbook, Password:="test", WriteResPassword:="test", ReadOnlyRecommended:=False, CreateBackup:=False
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Per VBA Datei speichern mit Passwort
14.09.2018 16:16:00
ChrisL
Hi Harald
Mit SaveCopyAs kannst du kein FileFormat angeben.
Wenn du komplett fertigen Codes willst, dann empfehle ich dir Auftragsprogrammierung. In einem Forum solltest du m.E. auf solche Anforderungen verzichten.
Aber weil heute Freitag ist und weil der Apéro erst in 30 min. startet...
Sub t()
Dim strFullName As String
Dim strPfad As String, strFile1 As String, strFile2 As String
strFullName = ThisWorkbook.FullName
strPfad = ThisWorkbook.Path & "\"
strFile1 = "mitPW.xlsm"
strFile2 = "ohnePW.xlsx"
ThisWorkbook.SaveAs Filename:=strPfad & strFile1, FileFormat:=xlOpenXMLWorkbookMacroEnabled, _
Password:="test", WriteResPassword:="test", ReadOnlyRecommended:=False, CreateBackup:=False
ThisWorkbook.SaveAs Filename:=strPfad & strFile2, FileFormat:=xlNormal, _
Password:="test", WriteResPassword:="test", ReadOnlyRecommended:=False, CreateBackup:=False
Workbooks.Open strFullName
ThisWorkbook.Close False
End Sub

cu
Chris
Anzeige
AW: Per VBA Datei speichern mit Passwort
14.09.2018 16:18:26
UweD
Bei mir klappt es so
    Dim Pfad As String, Datei As String, PW As String
    
    Pfad = "X:\Temp\"
    Datei = "MeineDatei"
    PW = "test"
    
    With ActiveWorkbook
        .SaveAs Pfad & Datei & ".xlsm", xlOpenXMLWorkbookMacroEnabled, PW, PW
        .SaveAs Pfad & Datei & ".xlsx", xlOpenXMLWorkbook, PW, PW
    End With

LG UweD
Anzeige
AW: Per VBA Datei speichern mit Passwort
14.09.2018 16:48:14
fcs
Hallo Harald,
hier muss man erst per SaveCopyAs eine Kopie der Datei speichern. Dann die Kopie mit Makros und Passwort per SaveAs speichern.
Zum Schluss dann die XLSX-Datei per SaveAs speichern und die Datei schliessen.
Damit es beim Speichern der Sicherheitskopien keine Probleme gibt Datum und Uhrzeit als eindeutige Unterscheidung in den Namen der Sicherheitskopien einbauen.
Gruß
Franz

Sub Make_Sicherheitskopien()
Dim wkb As Workbook
Dim strNameSK As String
Dim strPfadSK As String
strPfadSK = "F:\löschen\"
strPfadSK = "D:\Test\48Archiv\"
Set wkb = ActiveWorkbook
'Name der Sicherheitskopie muss anders sein als der Name der aktiven Datei!!! _
deswegen DatumZeit eingebaut
strNameSK = strPfadSK & Left(wkb.Name, InStrRev(wkb.Name, ".") - 1) _
& Format(Now, " YYYYMMDD_hhmmss") & ".xlsm"
'Kopie der Datei im Ordner speichern
wkb.SaveCopyAs Filename:=strNameSK
Application.ScreenUpdating = False
Application.DisplayAlerts = False
'Sicherheitskopie wieder öffnen
Set wkb = Application.Workbooks.Open(Filename:=strNameSK)
'als XLSM speichern
wkb.SaveAs Filename:=strNameSK, FileFormat:=52, Password:="test", writerespassword:="test", _
addtomru:=False
'Namen der XLSX-Datei festlegen
strNameSK = Left(strNameSK, InStrRev(strNameSK, ".")) & "xlsx"
'als XLSX speichern
wkb.SaveAs Filename:=strNameSK, FileFormat:=51, Password:="test", writerespassword:="test", _
addtomru:=False
'Kopie schliessen
wkb.Close savechanges:=False
Application.DisplayAlerts = False
Application.ScreenUpdating = True
End Sub

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Excel-Datei mit Passwort speichern per VBA


Schritt-für-Schritt-Anleitung

Um eine Excel-Datei mit Passwort zu speichern, kannst du den folgenden VBA-Code verwenden. Dieser Code speichert eine Arbeitsmappe sowohl als XLSM-Datei (mit Makros) als auch als XLSX-Datei (ohne Makros). Hier ist der vollständige Code:

Sub SpeichernMitPasswort()
    Dim strPfad As String
    Dim strFile1 As String, strFile2 As String
    strPfad = ThisWorkbook.Path & "\"
    strFile1 = "DateiMitPasswort.xlsm"
    strFile2 = "DateiOhnePasswort.xlsx"

    ' Speichern als XLSM-Datei mit Passwort
    ThisWorkbook.SaveAs Filename:=strPfad & strFile1, FileFormat:=xlOpenXMLWorkbookMacroEnabled, _
    Password:="test", WriteResPassword:="test", ReadOnlyRecommended:=False, CreateBackup:=False

    ' Speichern als XLSX-Datei mit Passwort
    ThisWorkbook.SaveAs Filename:=strPfad & strFile2, FileFormat:=xlOpenXMLWorkbook, _
    Password:="test", WriteResPassword:="test", ReadOnlyRecommended:=False, CreateBackup:=False
End Sub

Dieser Code nutzt die SaveAs-Methode, um die Datei mit einem Passwort zu schützen. Achte darauf, dass du den Pfad und den Dateinamen an deine Bedürfnisse anpasst.


Häufige Fehler und Lösungen

  1. Fehlermeldung beim Speichern:

    • Achte darauf, dass der Pfad, den du angibst, existiert. Ansonsten wird die Datei nicht gespeichert.
  2. Passwort wird nicht akzeptiert:

    • Stelle sicher, dass du das Passwort korrekt eingegeben hast. Das Passwort ist case-sensitive.
  3. Dateiformat nicht unterstützt:

    • Vergewissere dich, dass du das richtige Dateiformat angibst, z.B. xlOpenXMLWorkbook für XLSX und xlOpenXMLWorkbookMacroEnabled für XLSM.

Alternative Methoden

Falls du eine Datei ohne VBA speichern möchtest, kannst du dies manuell tun:

  1. Gehe zu „Datei“ > „Speichern unter“.
  2. Wähle den Speicherort und gib den Dateinamen ein.
  3. Klicke auf „Extras“ und dann auf „Allgemeine Optionen“.
  4. Gib dein Passwort ein und klicke auf „OK“.

Praktische Beispiele

Hier sind einige weitere Beispiele, die dir helfen könnten:

Sub BackupMitPasswort()
    Dim wkb As Workbook
    Dim strName As String
    strName = "Backup_" & Format(Now, "YYYYMMDD_hhmmss") & ".xlsm"

    Set wkb = ActiveWorkbook
    wkb.SaveCopyAs Filename:="C:\Backup\" & strName
    ' Nun die Kopie mit Passwort speichern
    Workbooks.Open "C:\Backup\" & strName
    ActiveWorkbook.SaveAs Filename:="C:\Backup\" & strName, FileFormat:=xlOpenXMLWorkbookMacroEnabled, Password:="test"
    ActiveWorkbook.Close
End Sub

In diesem Beispiel wird eine Sicherungskopie der aktuellen Arbeitsmappe erstellt und mit einem Passwort geschützt.


Tipps für Profis

  • Nutze Application.DisplayAlerts = False, um Warnmeldungen beim Überschreiben von Dateien zu unterdrücken.
  • Speichere Backups regelmäßig, um Datenverluste zu vermeiden. Der Einsatz von Zeitstempeln im Dateinamen kann hilfreich sein.
  • Experimentiere mit WriteResPassword, um die Schreibberechtigung für andere Benutzer zu steuern.

FAQ: Häufige Fragen

1. Wie kann ich ein Passwort für eine Excel-Datei entfernen? Um ein Passwort zu entfernen, öffne die Datei, gehe zu „Datei“ > „Informationen“ > „Arbeitsmappe schützen“ und wähle „Kennwort entfernen“.

2. Welche Excel-Version benötige ich für die Verwendung von VBA? Die meisten VBA-Funktionen sind in den Versionen Excel 2010 und höher verfügbar. Stelle sicher, dass du eine Version verwendest, die VBA unterstützt.

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