AW: Datenschutz
12.06.2006 16:25:56
Andi
Hi,
Mal so als Denkanstoss...
kopiere folgendes ins Modul der Tabelle:
Private Sub Worksheet_Activate()
Select Case VBA.Environ("username")
Case "andi" 'hier user-Name mit Lösch- und Schreibberechtigung
loeschen = True
eintragen = True
Case "Arendt", "Hans" 'hier user-Namen mit Schreibberechtigung
loeschen = False
eintragen = True
Case Else
loeschen = False
eintragen = False
End Select
Select Case ActiveCell.Value
Case ""
zelle_leer = True
Case Else
zelle_leer = False
End Select
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Select Case zelle_leer
Case True
If eintragen = False Then
Application.EnableEvents = False
Application.Undo
Application.EnableEvents = True
MsgBox "Keine Bereichtigung"
End If
Case False
If loeschen = False Then
Application.EnableEvents = False
Application.Undo
Application.EnableEvents = True
MsgBox "Keine Bereichtigung"
End If
End Select
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Select Case Target.Value
Case ""
zelle_leer = True
Case Else
zelle_leer = False
End Select
End Sub
und folgendes in ein Standard-Modul:
Private Sub Worksheet_Activate()
Select Case VBA.Environ("username")
Case "andi" 'hier user-Name mit Lösch- und Schreibberechtigung
loeschen = True
eintragen = True
Case "Arendt", "Hans" 'hier user-Namen mit Schreibberechtigung
loeschen = False
eintragen = True
Case Else
loeschen = False
eintragen = False
End Select
Select Case ActiveCell.Value
Case ""
zelle_leer = True
Case Else
zelle_leer = False
End Select
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Select Case zelle_leer
Case True
If eintragen = False Then
Application.EnableEvents = False
Application.Undo
Application.EnableEvents = True
MsgBox "Keine Bereichtigung"
End If
Case False
If loeschen = False Then
Application.EnableEvents = False
Application.Undo
Application.EnableEvents = True
MsgBox "Keine Bereichtigung"
End If
End Select
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Select Case Target.Value
Case ""
zelle_leer = True
Case Else
zelle_leer = False
End Select
End Sub
Nachdem die Tabelle ja beim Öffnen evtl gleich aktiv ist, müsstest Du den Code von Worksheet_Activate und Worksheet_SelectionChange evtl noch sinngemäß ins Workbook_Open übernehmen, aber das müsste ja bei VBA gut möglich sein...
Schönen Gruß,
Andi