Registriert seit: 29.09.2015
Version(en): 2030,5
Man kann jeder User ein eigenes Such-workbook geben.
Suchen kann in einer separate Datei stattfinden.
Registriert seit: 03.06.2019
Version(en): 2016
Hallo, wäre das so richtig?
Diesen Code muss ich doch in das Datenblatt einfügen?
Private Sub Worksheet_Change(ByVal Target As Range)
Public strTarget As String
If Target.Address = "$C$1" And Target.Value = "" Then Exit Sub
If Target.Address = "$C$1" And Target.Value > 0 Then Target.Locked = True
strTarget = Target.Address
Application.OnTime Now + TimeValue("00:00:60"), "Freigeben"
End Sub
Sub Freigeben()
Range(strTarget).Locked = False
End Sub
Wäre das richtig?
Registriert seit: 11.04.2014
Version(en): Office 2007
Hallo,
nicht ganz. Die Zeile mit der Variablendekleration gehört außerhalb der Prozedur.
Code:
Private strTarget As String 'als Private,da Public nur in einen allgemeinen Modul stehen sollte
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$1" And Target.Value = "" Then Exit Sub
If Target.Address = "$C$1" And Target.Value > 0 Then Target.Locked = True
strTarget = Target.Address
Application.OnTime Now + TimeValue("00:00:60"), "Freigeben"
End Sub
Sub Freigeben()
Range(strTarget).Locked = False
End Sub
Gruß Stefan
Win 10 / Office 2016
Registriert seit: 03.06.2019
Version(en): 2016
Hi, ich habe folgendes gemacht..
Diesen Code habe ich in Tabellenblatt mit dem Name (OFFEN) eingefügt.
Private Sub Worksheet_Change(ByVal Target As Range)
'
On Error Resume Next
'Wenn Erledigt dann Datum
If Target.Column = 45 Or Target.Column = 48 Or Target.Column = 51 Or Target.Column = 54 Then
If Target.Value = "Erledigt" Then
Target.Locked = True
Target.Offset(0, 1).Value = Date
Sheets("OFFEN").Unprotect password:="159357junk"
Target.Offset(0, -1).Select
Selection.Locked = True
Else
Sheets("OFFEN").Protect password:="159357junk", DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowFiltering:=True 'Blattschutz aktivieren
Exit Sub
End If
End If
If Target.Address = "$C$1" And Target.Value = "" Then Exit Sub
If Target.Address = "$C$1" And Target.Value > 0 Then
Sheets("OFFEN").Unprotect password:="159357junk"
Target.Locked = True
strTarget = Target.Address
Application.OnTime Now + TimeValue("00:00:60"), "Freigeben"
End If
On Error GoTo 0
End Sub
Sub Freigeben()
Range(strTarget).Locked = False
End Sub
und den Code in ein allgemeines Modul1
Private strTarget As String 'als Private,da Public nur in einen allgemeinen Modul stehen sollte
So?
Registriert seit: 11.04.2014
Version(en): Office 2007
Hallo,
ich habe nicht vermutet, dass du die Variable in einem allgemeinen Modul deklarierst, da heißt es natürlich Public anstelle von Private.
Gruß Stefan
Win 10 / Office 2016
Registriert seit: 03.06.2019
Version(en): 2016
Hallo Steffan,
Ich habe statt Privat auf Public geändert. Die Zelle C1 wird geschützt doch nach 60 sec. nicht wieder entsperrt.
Kann es daran liegen das die Tabelle Passwort geschützt ist?
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen,
... wenn Du nicht, wie ich beschrieben habe, UserInterfaceOnly = True gesetzt hast ...
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 03.06.2019
Version(en): 2016
30.09.2020, 18:43
(Dieser Beitrag wurde zuletzt bearbeitet: 30.09.2020, 18:46 von DK84.)
Hallo Steffan du bist echt klasse!!!
Hab's geschafft und es funktioniert super. Danke noch mal :19:
Hallo,
in welchen Abschnitt sollte den "UserInterfaceOnly = True" gesetzt werden? und wo für steht das?
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen,
siehe hier:
#8und dann wo es passt ActiveSheet.Protect ... UserInterfaceOnly = True
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)