ich möchte, dass eine Exceldatei immer nur von einem Computer
genutzt werden kann. Dazu soll beim Öffnen der Datei der
Computername ausgelesen werden. Zum Ermitteln des
Computernamens verwende ich folgenden code:
Hi Denis,
Alt+F11, Doppelklick auf „DieseArbeitsmappe“, wähle dann in der
Mitte „Workbook“ und rechts davon „Open“ aus, dann wird der Rumpf des
Openereignisses ertellt.
Also so was:
Private Sub Workbook_Open(…)
End Sub
Dieser Code wird beim Öffnen der Datei ausgeführt.
Aufgrund der Anregung von Peter würde ich erstmal prüfen ob die Datei schon offen ist
Dim Geöffnet as Boolean,Vorhanden as boolean
For each wb in workbooks
if wb.name=thisworkbook.name then Geöffnet=true
next wb
if Geöffnet=true then thisworkbook.close savechanges:=false
Anschliessend würde ich prüfen ob unter den "CustomDocumentProberties ein Name wie z.B. "PcName" existiert.
Wenn "nein" (also Erstbenutzung der Datei) wird er angelegt.
for each N in thisworkbook.CustomDocumentProberties.names
if N=thisworkbook.name then Vorhanden =true
next N
if Vorhanden=False then
'Syntax aus der Hilfe, der Name wird als String angelegt und ihm der Name des PCs als Wert zugewiesen.
thisworkbook.CustomDocumentProberties.Add ...
end if
if GetComputerName(sTxt, 64)thisworkbook.CustomDocumentProberties("PcName") then thisworkbook.close savechanges:=false
Ich habe das jetzt so heruntergeschrieben, mit Sicherheit
Syntaxfehler drin, möglich auch Logikfehler, aber so würde ich da als
Ansatz herangehen.
Gruß
Reinhard
Declare Function GetComputerName& Lib „kernel32“ Alias _
„GetComputerNameA“ (ByVal lbbuffer As String, nsize As Long)
Sub CptName()
Dim sTxt As String * 64
Call GetComputerName(sTxt, 64)
End Sub
Was noch eingebaut werden muss: Beim allerersten Öffnen der
Datei muss der CompName irgendwo gespeichert werden und ab dem
2. Öffnen soll immer geprüft werden, ob der gespeicherte
CompName mit dem CompNamen übereinstimmt, von dem die Datei
gerade geöffnet wird. Wenn diese nicht übereinstimmen, soll
eine Meldung (z.B. keine Berechtigung vorhanden) ausgegeben
werden und die Datei geschlossen werden. Weiß jemand wie der
Code dazu geschrieben werden müßte?
Gruß
Denis