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)