Herbers Excel-Forum - das Archiv

Blattschutz in einem Modul

Bild

Betrifft: Blattschutz in einem Modul
von: Werner
Geschrieben am: 10.10.2003 10:20:03
Guten Morgen,
folgendes Problem:
in einer Datei habe ich 14 Tabellenblätter.
Diese Eintragungen werden von 3 Usern gemacht.
Auf einem Tabellenblatt habe ich ein Modul eingebaut um automatisch eine Rückmeldung, für alle sichtbar,bestehnd aus Name etc.zusehen.
Das Klappt dank der Hilfe von Willi prima.
Meine Frage:
Wo muss ich oder wie in diesem Modul eine Blattsperre einbauen?
Also automatische Übernahme Ja.
Manuelle Änderungen NEIN.
Danke
Werner

Bild

Betrifft: AW: Blattschutz in einem Modul
von: Hajo_Zi
Geschrieben am: 10.10.2003 10:22:16
Hallo Werner

in VBA kannst Du unter der Tabelle kein Modul einfügen.

1. die meisten haben hier keine Glaskugel
2. die meisten haben kleinen Heiligenschein
3. die meisten können nicht auf Deinen Rechner schauen

für alle diese Leute ist die Antwort schneller erstellt, wenn Du den relevanten Code postest.

Falls Code vorhanden wurde dieser getestet unter Betriebssystem XP Pro und Excel Version XP SBE.
Bitte kein Mail, Probleme sollen im Forum gelöst werden.

Microsoft MVP für Excel

Das Forum lebt auch von den Rückmeldungen.

http://home.media-n.de/ziplies/

Bild

Betrifft: AW: Blattschutz in einem Modul
von: Werner
Geschrieben am: 10.10.2003 10:31:44
Hallo Hajo,
hier der Komplette VBA
Diesen Code in ein Modul:
Declare Function GetUserName Lib "advapi32.dll" _
Alias "GetUserNameA" (ByVal lpBuffer As String, _
nSize As Long) As Long

Function UserName()
Dim Buffer As String * 100
Dim BuffLen As Long
BuffLen = 100
GetUserName Buffer, BuffLen
UserName = Left(Buffer, BuffLen)
UserName = Left(UserName, InStr(UserName, Chr(0)) - 1)
End Function


Diesen Code in jede zu überwachende Tabelle:


Private Sub Worksheet_Change(ByVal Target As Range)
Dim intLZ, Sh As Worksheet
Set Sh = ActiveSheet
With Sheets("Logbuch")
intLZ = .Cells(65536, 1).End(xlUp).Row + 1
.Cells(intLZ, 1) = UserName
.Cells(intLZ, 2) = Date
.Cells(intLZ, 3) = Sh.Name
.Cells(intLZ, 4) = Target.Address
End With
End Sub


das habe ich wie gesagt von Willi und es klappt hervorragend.Nur wo muss ich jetzt den Blattschutz für das 1.Blatt einstellen ?(da wo die Daten des Users automatisch stehen.
Danke noch mal
Werner
Bild

Betrifft: AW: Blattschutz in einem Modul
von: Hajo_Zi
Geschrieben am: 10.10.2003 10:37:34
Hallo Werner

ich vermutemal Du meinst die abelle Logbuch


Private Sub Worksheet_Change(ByVal Target As Range)
Dim intLZ, Sh As Worksheet
Set Sh = ActiveSheet
With Sheets("Logbuch")
.Unprotect ("Passwort")
intLZ = .Cells(65536, 1).End(xlUp).Row + 1
.Cells(intLZ, 1) = UserName
.Cells(intLZ, 2) = Date
.Cells(intLZ, 3) = Sh.Name
.Cells(intLZ, 4) = Target.Address
.Protect ("Passwort")
End With
End Sub




Falls Code vorhanden wurde dieser getestet unter Betriebssystem XP Pro und Excel Version XP SBE.
Bitte kein Mail, Probleme sollen im Forum gelöst werden.

Microsoft MVP für Excel

Das Forum lebt auch von den Rückmeldungen.

http://home.media-n.de/ziplies/

Bild

Betrifft: AW: Blattschutz in einem Modul
von: Werner
Geschrieben am: 10.10.2003 10:43:44
Hallo Hajo,
genau...
ich setze es sofort um und danke dir ganz herzlich.
Werner
 Bild
Excel-Beispiele zum Thema " Blattschutz in einem Modul"
Kennwort für Blattschutz Blattschutz aufheben
Blattschutzdialog über VBA aufrufen Blattschutz für eine Serie von Tabellen setzen und aufheben
Blattschutz beim Speichern setzen Blattschutz setzen und dennoch mit AutoFiltern
Blattschutz aufheben, Daten eintragen, Blattschutz setzen Blattschutz für VBA-Einträge ausschließen
Blattschutz mit und ohne Passwort aufheben und setzen Spaltenweiser Blattschutz in Abhängigkeit des Anwendernamens