Ich habe folgendes Problem:
In einem Bereich eines Excelsheets sollen per VBA definierte Funktionen wie Rechnername, Benutzername, Druckertreiber, Speicherpfad usw. ausgegeben werden. Diese Zellen sollen vom Benutzer nicht überschrieben werden dürfen, d.h. sind per Zellschutz / Blattschutz vor dem Überschreiben gesichert, mit Paswort (z.B. "BANANE") Ich habe ein VBA Script, das diese Felder zwar aktivieren würde, wenn das Sheet neu aufgerufen wird (das soll so sein!), aber da die Zellen geschützt sind kommt es natürlich zu einer Fehlermeldung. Habt ihr eine Lösung für das Problem? Momentan sieht das Script so aus:
Option Explicit
Declare Function GetComputerName& Lib "kernel32" Alias _
"GetComputerNameA" (ByVal lbbuffer As String, nsize As Long)
Function HP_Std_Printername()
HP_Std_Printername = Application.ActivePrinter
End Function
Function HP_Vorlagenpfad()
HP_Vorlagenpfad = Application.TemplatesPath
End Function
Function HP_Filename()
HP_Filename = ThisWorkbook.FullName
End Function
Function HP_Username()
HP_Username = Application.UserName
End Function
Function HP_Computername()
Dim z As String
z = String(64, " ")
Call GetComputerName(z, 64)
HP_Computername = Left(z, InStr(1, z, " ") - 2)
End Function
Function HP_last_update()
Dim fdate As Date
fdate = FileDateTime(ThisWorkbook.FullName)
HP_last_update = Format(fdate, "short date") & " um " & Format(fdate, "short time")
End Function
Function update_fields()
Tabelle1.Range("Benutzer").Value = HP_Username()
Tabelle1.Range("gespeichert").Value = HP_last_update()
Tabelle1.Range("Rechner").Value = HP_Computername()
Tabelle1.Range("Vorlage").Value = HP_Filename()
Tabelle1.Range("Drucker").Value = HP_Std_Printername()
Tabelle1.Range("Excelversion").Value = Application.Version
End Function
Ich danke Euch schon im Vorraus für die Hilfe!
Peter