-> Hier kostenlos registrieren
VBS Excel Mappe Passwortgeschützt öffnen beschreiben und wieder schließen
Hallo zusammen,
ich habe folgende Problematik:
Ich öffne mit VBS eine Datei Vorlage.xls, diese Datei speichere ich dann unter anderem Namen ab.
Nach einer Messung öffne ich die Datei wieder und beschreibe eine Zeile z.b A10 - G10.
Danach wird die Datei gespeichert und Excel beendet.
Bis hierhin klappt alles.
Ich muss den Eintrag in der Mappe gegen Manipulation schützen und habe es mit Blattschutz probiert.
Das funktioniert, aber ich kann die die Datei in Excel öffnen und den Blattschutz einfach wieder ausschalten.
Dann habe ich es mit Passwortschutz versucht aber nicht hinbekommen.
Ich hoffe ihr könnt mir helfen.
THX
Runtime Advanced, TIA V15.1, Excel 2016
Hier mein Code:
If SmartTags("DB_Variablen_Archiv_Schreiben") Then
' Variablen-Zuweisungen ...
Verzeichnis = "D:\Share"
Name = SmartTags("Global_Marker_Filename")
' Pointer auf Tabelle laden
Set appExcel = CreateObject ("EXCEL.Application")
Set fs = CreateObject ("Scripting.FileSystemObject")
'Geöffnete Datei ect muss noch abgefangen werden
Set wbExcel = appExcel.Workbooks.Open (Verzeichnis + Name)
Set wsExcel = wbExcel.Worksheets("Tabelle1")
'Excel sichtbar = True/ unsichtbar = False
appExcel.application.visible = False
wsExcel.Unprotect.passwort "1234"
wsExcel.Cells.Locked = False
wsExcel.UnProtect
'In bestimmte Excel Zellen schreiben
wsExcel.Range("A3") = SmartTags("IDB_PartType_Name_TYP_ACT") ' Teilenummer
wsExcel.Range("B3") = SmartTags("Global_Marker_HMI_Seriennummer") ' Seriennummer
wsExcel.Range("C3") = SmartTags("DB_Protocol_Bediener_Actual") ' Prüfer
wsExcel.Range("D3") = Date ' Datum
wsExcel.Protect.passwort "1234"
wsExcel.Cells.Locked = True
wsExcel.Protect
' Tabelle abspeichern
wbExcel.Close True 'false
appExcel.Quit ()
'------------------------------------------------------------------------------
' verwendeten Speicher wieder freigeben
Set wsExcel = Nothing
Set wbExcel = Nothing
Set fs = Nothing
Set appExcel = Nothing
Set Verzeichnis = Nothing
Set Datei = Nothing
SmartTags("DB_Variablen_Archiv_Schreiben") = False
End If
Hallo zusammen,
ich habe folgende Problematik:
Ich öffne mit VBS eine Datei Vorlage.xls, diese Datei speichere ich dann unter anderem Namen ab.
Nach einer Messung öffne ich die Datei wieder und beschreibe eine Zeile z.b A10 - G10.
Danach wird die Datei gespeichert und Excel beendet.
Bis hierhin klappt alles.
Ich muss den Eintrag in der Mappe gegen Manipulation schützen und habe es mit Blattschutz probiert.
Das funktioniert, aber ich kann die die Datei in Excel öffnen und den Blattschutz einfach wieder ausschalten.
Dann habe ich es mit Passwortschutz versucht aber nicht hinbekommen.
Ich hoffe ihr könnt mir helfen.
THX
Runtime Advanced, TIA V15.1, Excel 2016
Hier mein Code:
If SmartTags("DB_Variablen_Archiv_Schreiben") Then
' Variablen-Zuweisungen ...
Verzeichnis = "D:\Share"
Name = SmartTags("Global_Marker_Filename")
' Pointer auf Tabelle laden
Set appExcel = CreateObject ("EXCEL.Application")
Set fs = CreateObject ("Scripting.FileSystemObject")
'Geöffnete Datei ect muss noch abgefangen werden
Set wbExcel = appExcel.Workbooks.Open (Verzeichnis + Name)
Set wsExcel = wbExcel.Worksheets("Tabelle1")
'Excel sichtbar = True/ unsichtbar = False
appExcel.application.visible = False
wsExcel.Unprotect.passwort "1234"
wsExcel.Cells.Locked = False
wsExcel.UnProtect
'In bestimmte Excel Zellen schreiben
wsExcel.Range("A3") = SmartTags("IDB_PartType_Name_TYP_ACT") ' Teilenummer
wsExcel.Range("B3") = SmartTags("Global_Marker_HMI_Seriennummer") ' Seriennummer
wsExcel.Range("C3") = SmartTags("DB_Protocol_Bediener_Actual") ' Prüfer
wsExcel.Range("D3") = Date ' Datum
wsExcel.Protect.passwort "1234"
wsExcel.Cells.Locked = True
wsExcel.Protect
' Tabelle abspeichern
wbExcel.Close True 'false
appExcel.Quit ()
'------------------------------------------------------------------------------
' verwendeten Speicher wieder freigeben
Set wsExcel = Nothing
Set wbExcel = Nothing
Set fs = Nothing
Set appExcel = Nothing
Set Verzeichnis = Nothing
Set Datei = Nothing
SmartTags("DB_Variablen_Archiv_Schreiben") = False
End If
Zuletzt bearbeitet: