Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1256to1260
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zellen zwischen 16.30 und 7.00 Uhr sperren

Zellen zwischen 16.30 und 7.00 Uhr sperren
janwe02
Hallo und guten Morgen,
ich suche einen VBA code zum sperren bestimmter Zellen, jedoch nur zwischen 16.30 Uhr und 7.00 Uhr Morgens.
Die Sperre soll nur gegen Passwort aufgehoben werden können.
Hintergrund: Eine Bestelldatei ist freigegeben und soll von versch. Usern eben nur bis max 16.30 bearbeitet werden , dann ist schluss bis zum nächsten tag.
Ich habe schon viel gestöbert zum Tabellen oder Zellenschutz aber leider nichts gefunden was eben die zeiteinschränkung bewirkt
Würde mich freuen wenn jemand helfen kann
Danke jan
AW: Zellen zwischen 16.30 und 7.00 Uhr sperren
31.03.2012 09:26:02
Hajo_Zi
Hallo Jan,
das geht nur über Tabellenschutz, also alle Zellen sind gesperrt. Du mußt eine Prozedur laufen lassen die die Tabelle sperrt. Sind es alle Tabelle der Datei? Wie genau möchtest Du das haben. Läuft die Prozedur im Sekundenabstand, kann es Leistung kosten.

AW: Zellen zwischen 16.30 und 7.00 Uhr sperren
31.03.2012 09:49:26
janwe02
Moin Hajo,
es kann / soll die gesamte Datei gesperrt werden oder eben auch alle Tabellenblätter (Dann können die User ggf im schreibgeschützten Modus noch die Daten lesen). Wichtig ist nur das nach 16.30 Uhr nur noch Passwortbefugte die Datei ändern können.
Die Prozedur im sekundenabstand ? Verstehe ich das so das sie im sekundenabstand gegen die Zeit prüft ?
Dann reicht auch ein grösserer Abstand bspw.Minute.
Ich hab die Mastertabelle mal hochgeladen
. Unter D,E,F und H dürfen / sollen zwischen in bestimmten Zeilen (bsp D5:H11)die ich freigegeben habe Einträge gemacht werden dürfen. Aber eben nur in der besagten Zeit. Danach kann das ganze Blatt gesperrt sein, damit Manipulationen ausgeschlossen sind.
https://www.herber.de/bbs/user/79622.xls
Gruss Jan
Anzeige
AW: Zellen zwischen 16.30 und 7.00 Uhr sperren
31.03.2012 09:53:26
Hajo_Zi
Hallo Jan,
die Datei habe ich jetzt nicht runter geladen. Die Zellen formatieren sehe ich nicht als Problem.
Falls jemand die Makro deaktiviert, nützt Dir der gesamte Code nichts.
Das VBA Projekt sollte geschützt sein, da dort das Passwort steht.
In Excel ist aber nichts sicher.
Ich versuiche jetzt mal eine Code zu erstellen.
Gruß Hajo
AW: Zellen zwischen 16.30 und 7.00 Uhr sperren
31.03.2012 10:25:38
Hajo_Zi
Hallo Jan,
' ************************************************************* _ ' Modul: DieseArbeitsmappe Typ = Element der Mappe(Sheet, Workbook, ...) ' ************************************************************** Option Explicit _ ' Variablendefinition erforderlich '************************************************** '* H. Ziplies * '* 31.03.12 * '* erstellt von HajoZiplies@web.de * '* http://Hajo-Excel.de/ * '************************************************** Private Sub _ Workbook_Activate() 'Sperren Starten Sperren End Sub Private Sub _ Workbook_Deactivate() 'sperren Abschalten Ende End Sub Private Sub _ Workbook_BeforeClose(Cancel As Boolean) Ende ' Sperren _ beenden End Sub Private Sub _ Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) Ende ' Sperren _ beenden End Sub


' **************************************************************
' Modul: mdl_gesperrt Typ = Allgemeines Modul
' **************************************************************

Option Explicit ' Variablendefinition erforderlich
Option Private Module ' Makro nicht unter Extra, Makro sichtbar
'**************************************************
'* H. Ziplies *
'* 31.03.12 *
'* erstellt von HajoZiplies@web.de *
'* http://Hajo-Excel.de/ *
'**************************************************
' das Schreiben der Startzeit auf eine Variable hat den Vorteil das die
' Prozedur leichter angehalten werden kann
Public DaEt As Date ' nächste Startzeit
Public Const DaZeitEnde As Date = "16:30" ' Ende Zeit
Public Const DaZeitStart As Date = "10:23" ' Start Zeit
Public Const DaZeit As Date = "00:01:00" ' Zeitabstand prüfen
Dim WsTabelle As Worksheet
Sub Sperren()
For Each WsTabelle In Sheets
If Time <= DaZeitStart Or Time >= DaZeitEnde Then
WsTabelle.Protect ("Gruß Gott")
Else
WsTabelle.Unprotect ("Gruß Gott")
End If
Next WsTabelle
Application.OnTime Time + DaZeit, "Sperren"
End Sub
Sub Ende()
On Error Resume Next ' Fehlerroutine von Excel ausschalten
Application.OnTime EarliestTime:=DaEt, Procedure:="Sperren", Schedule:=False
On Error GoTo 0 ' Fehlerroutine von Excel einschalten
End Sub
Gruß Hajo
Anzeige
AW: Zellen zwischen 16.30 und 7.00 Uhr sperren
31.03.2012 10:30:48
Hajo_Zi
Hallo Jan,
der Code im Modul war nicht ganz korrekt.
Option Explicit                                     ' Variablendefinition erforderlich
Option Private Module                               ' Makro nicht unter Extra, Makro sichtbar
'* H. Ziplies                                     *
'* 31.03.12                                       *
'* erstellt von HajoZiplies@web.de                *
'* http://Hajo-Excel.de/
' das Schreiben der Startzeit auf eine Variable hat den Vorteil das die
' Prozedur leichter angehalten werden kann
Public DaEt As Date                                 ' nächste Startzeit
Public Const DaZeitEnde As Date = "16:30"           ' Ende Zeit
Public Const DaZeitStart As Date = "10:23"          ' Start Zeit
Public Const DaZeit As Date = "00:01:00"            ' Zeitabstand prüfen
Dim WsTabelle As Worksheet
Sub Sperren()
For Each WsTabelle In Sheets
If Time = DaZeitEnde Then
WsTabelle.Protect ("Gruß Gott")
Else
WsTabelle.Unprotect ("Gruß Gott")
End If
Next WsTabelle
DaEt = Time + DaZeit
Application.OnTime DaEt, "Sperren"
End Sub
Sub Ende()
On Error Resume Next                            ' Fehlerroutine von Excel ausschalten
Application.OnTime EarliestTime:=DaEt, Procedure:="Sperren", Schedule:=False
On Error GoTo 0                                 ' Fehlerroutine von Excel einschalten
End Sub
Gruß Hajo
Anzeige
AW: Zellen zwischen 16.30 und 7.00 Uhr sperren
31.03.2012 11:12:41
janwe02
Hallo Hajo , erstmal vielen vielen Dank. Aber ich bekomme das nicht zum laufen.
Ich habe den code mdl_gesperrt in ein allgemeines Modul kopiert und den anderen Code unter : Diese Arbeitsmappe
läuft aber irgendwie gar nicht. auch habe ich die Systemzeit bei mir verändert brachte aber auch nichts.
Wo ist bloss mein Fehler?
Gruss Jan
AW: Zellen zwischen 16.30 und 7.00 Uhr sperren
31.03.2012 11:18:48
Hajo_Zi
Hallo Jan,
in meiner Datei lief es. Deine Datei sehe ich nicht. Nach der Beschreibung ist es am korrekten Ort. Die Datei hast Du schon geschlossen, nach Eintragung Code?
Gruß Hajo
Anzeige
AW: Zellen zwischen 16.30 und 7.00 Uhr sperren
31.03.2012 12:28:38
janwe02
Sorry, ich habe meine grauen dann mal richtig angestrengt.
Lag bei mir. Ich hatte den Zellschutz für einige zellen herausgenommen und dann das gesamte Ws gesperrt. so ging das natürlich nicht.
Jetzt klappt das PERFEKT. Tausend dank
Nun werde ich ne kleine Msgbox einbauen mit den Öffnungzeiten der Datei :-)
Gruss Jan

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige