Registriert seit: 16.03.2018
Version(en): 2003
Hallo LCohen, das verstehe ich nicht. Wie soll das funktionieren??
aktuelles Datum in Zelle D4: =TODAY()
sobald das Häkchen in AC4 gesetzt ist, soll das Datum minus 1 Tag sein =TODAY()-1
Das -1 soll nur dann greifen, wenn das Häkchen in der Zelle AC4 steht bzw. gesetzt ist.
Hintergrund ist: In einem Schichtübergabeprotokoll markiert man am Schichtende mit dem Häkchen welche Schicht man gearbeitet hat (Frühschicht / Spätschicht / Nachtschicht) Wird das Protokoll am Ende der Nachtschicht geschrieben (Häkchen in Zelle AC4), dann hat die Arbeitszeit ja am Vorabend begonnen. Deshalb aktuelles Datum -1 bei Häkchen in AC4
Registriert seit: 10.04.2014
Version(en): 2016 + 365
21.03.2018, 10:52
(Dieser Beitrag wurde zuletzt bearbeitet: 21.03.2018, 10:52 von Rabe.)
Hi, das D4: =HEUTE()-AC4 bezieht sich auf seinen Lösungsvorschlag mit dem Rechtsklick, denn da steht 1 oder 0 in der Zelle. Darum hat er geschrieben: Zitat:Da haben wir doch gleich die Begründung für das, was ich sagte! das D4: =HEUTE()-(AC4="ü") dürfte sich dann auf die Doppelklick-Lösung beziehen.
Registriert seit: 16.03.2018
Version(en): 2003
Genau Rabe, du hast Recht. Da hab nicht genau gelesen.
Jetzt habe ich noch festgestellt, dass ,wenn ich das Sheet schütze, der Code für die Häkchen nicht mehr funktioniert. Kann mir da noch jemand helfen? Kann man den Code trotz Schutz nutzbar machen?
Registriert seit: 10.04.2014
Version(en): 2016 + 365
21.03.2018, 12:09
(Dieser Beitrag wurde zuletzt bearbeitet: 21.03.2018, 12:09 von Rabe.)
Hi,
das ist klar, denn das Makro will ja was in die Zelle schreiben. Das geht nur, wenn Du am Anfang / Ende des Makros den Blattschutz entfernst / setzt.
Tabelle1.Unprotect ... Tabelle1.Protect
Registriert seit: 16.03.2018
Version(en): 2003
Ich brauch aber ein geschütztes Arbeitsblatt, bei dem man die Häkchen nach Bedarf setzen kann. Geht das denn nicht???
Registriert seit: 10.04.2014
Version(en): 2016 + 365
21.03.2018, 12:14
(Dieser Beitrag wurde zuletzt bearbeitet: 21.03.2018, 12:15 von Rabe.)
Habe ich doch geschrieben: am Anfang entfernen, am Ende wieder setzen.
Registriert seit: 16.03.2018
Version(en): 2003
Ich hab mich vielleicht nicht richtig ausgedrückt.
Das Schichtprotokoll wird von vielen Personen benutzt, soll aber nicht verändert werden können. Außer das die Häkchen an der jeweiligen Stelle gesetzt werden und etwas Text eingegeben werden soll. Deshalb soll das setzen der Häkchen bei aktiviertem Blattschutz funktionieren.
Registriert seit: 10.04.2014
Version(en): 2016 + 365
21.03.2018, 14:03
(Dieser Beitrag wurde zuletzt bearbeitet: 21.03.2018, 14:03 von Rabe.)
Hi, das habe ich jetzt doch schon 2 Mal geschrieben, hast Du es überhaupt probiert? Also nun zum Dritten Mal: Zitat:Dann schreibe in das Makro zum Einfügen der Häkchen am Anfang rein: 'Blattschutz entfernen ActiveSheet.Unprotect
und am Ende, also nach Einfügen des Häkchens: 'Blattschutz wieder setzen ActiveSheet.Protect Dadurch wird automatisch der Blattschutz aufgehoben, dann das Häkchen gesetzt und dann wird das Blatt wieder geschützt. Dann also hier mal für Nicht-Mitdenker: Code: Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Intersect(Target, Range("B4,D4,F4")) Is Nothing Then Exit Sub 'Blattschutz aufheben ActiveSheet.Unprotect If Target.Value = Chr(252) Then Range("B4,D4,F4").Value = Chr(159) Intersect(Target.EntireRow, Range("U4,Y4,AC4")).Font.Color = RGB(200, 200, 200) Target.Font.Color = RGB(200, 200, 200) Target.Value = Chr(159) Else Range("B4,D4,F4").Value = Chr(159) Intersect(Target.EntireRow, Range("B4,D4,F4")).Font.Color = RGB(200, 200, 200) Target.Font.Color = RGB(255, 0, 0) Target.Value = Chr(252) End If Cells(Target.Row + 1, Target.Column).Select 'Blattschutz wieder setzen ActiveSheet.Protect End Sub
Registriert seit: 16.03.2018
Version(en): 2003
Sorry nochmal, ich check´s leider nicht richtig. Ich hab jetzt mal den Code unten angeführt. Wo gehören da die Ergänzungen rein?
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Intersect(Target, Range("U4,Y4,AC4")) Is Nothing Then Exit Sub If Target.Value = Chr(252) Then Range("U4,Y4,AC4").Value = Chr(159) Intersect(Target.EntireRow, Range("U4,Y4,AC4")).Font.Color = RGB(200, 200, 200) Target.Font.Color = RGB(200, 200, 200) Target.Value = Chr(159) Else Range("U4,Y4,AC4").Value = Chr(159) Intersect(Target.EntireRow, Range("U4,Y4,AC4")).Font.Color = RGB(200, 200, 200) Target.Font.Color = RGB(255, 0, 0) Target.Value = Chr(252) End If Cells(Target.Row + 1, Target.Column).Select End Sub
Registriert seit: 16.03.2018
Version(en): 2003
Bitte meine letzte Antwort vergessen. Du hast den Code ja schon geschickt. Den hat es bei mir nicht richtig angezeigt, aber jetzt sehe ich ihn. Ich danke euch allen für eure Mühe und Geduld!!!
|