Bei einer Datei, die bis auf wenige Zellen schreibgeschützt ist, habe ich die Möglichkeit, Währungen nach Bedarf abzufragen. Wenn dies der Fall ist, würde ich gerne in der geschützten Zelle (H14), dass dort das Datum aktualisiert wird.
Die anderen Zellen sind D10; D12 und D14. In diesen Zellen werden die aktuellen Kurse von Hand eingetragen.
Gibt es eine Formel, dass wenn ein neuer Eintrag in D10; D12 oder D14 erfolgt ist, in H14 das aktuelle Datum eingetragen wird?
in einer geschützen Zelle können keine Einträge vorgenommen werden.
Ich würde an deiner Stelle mit einem kleinen Makro den Schreibschutz aufheben, den Zeitstempel setzen und dann den Zellenschutz wieder einschalten.
Kopiere diesen Code hinter das betreffende Arbeitsblatt. (muss im Code noch angepasst werden)
Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range) Sheets("Tabelle2").Unprotect If Not Intersect(Target, Range("D10,D12,D14")) Is Nothing Then Range("H14").Value = Date Sheets("Tabelle2").Protect End If End Sub
Gruß Günter Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen. angebl. von Georg Christoph Lichtenberg (1742-1799)
Folgende(r) 1 Nutzer sagt Danke an WillWissen für diesen Beitrag:1 Nutzer sagt Danke an WillWissen für diesen Beitrag 28 • cuba
Habe die Datei soweit abgespeckt, so dass die wesentliche Frage besser zur Geltung kommt. Das Blatt ist passwortgeschützt, in diesem Falle ist es ABC.
Die grünen Felder sind aber frei zugänglich, es können also nur diese Felder, also auch mit Blattschutz, verändert werden. Wird nun eines der Felder (ging bei meiner ersten Anfrage davon aus, dass es nur D10, D12 und D14 sind) eine Eintragung aktualisiert, soll in H14 das Datum aktualisiert werden.
Ich habe den Code von Günter dann wie folgt abgeändert, aber da hat Excel etwas dagegen....
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("D3,D5,D10,D12,D14,D16")) Is Nothing Then Range("H14").Value = Date End If End Sub
Ich dachte mir, dass ich die Aufhebung des Blattschutzes und dann die Aktivierung des Blattschutzes eigentlich weg nehmen könne, da die D-Zellen ja alle nicht geschützt sind.
Hoffe, es gibt dennoch eine Lösung, denn ich will die Datei meinen Kollegen weitergeben, darum der Blattschutz.
(14.11.2014, 17:46)cuba schrieb: Die grünen Felder sind aber frei zugänglich, es können also nur diese Felder, also auch mit Blattschutz, verändert werden. Wird nun eines der Felder (ging bei meiner ersten Anfrage davon aus, dass es nur D10, D12 und D14 sind) eine Eintragung aktualisiert, soll in H14 das Datum aktualisiert werden.
Ich habe den Code von Günter dann wie folgt abgeändert, aber da hat Excel etwas dagegen....
Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("D3,D5,D10,D12,D14,D16")) Is Nothing Then Range("H14").Value = Date End If End Sub
Ich dachte mir, dass ich die Aufhebung des Blattschutzes und dann die Aktivierung des Blattschutzes eigentlich weg nehmen könne, da die D-Zellen ja alle nicht geschützt sind.
Die Zellen in der Spalte D mögen vielleicht nicht geschützt sein, aber wie steht es mit der Zelle H14? Wenn die geschützt ist, muss vor dem Datumseintrag der Blattschutz entfernt werden und danach wieder gesetzt werden.
Gruß Stefan Win 10 / Office 2016
Folgende(r) 1 Nutzer sagt Danke an Steffl für diesen Beitrag:1 Nutzer sagt Danke an Steffl für diesen Beitrag 28 • cuba
Vielen Dank für die schnelle Antwort. Es ist tatsächlich so, dass ich H214 dann ebenfalls als freie Zelle haben muss. Es wäre schön gewesen, wenn dies umgangen hätte werden können....., aber im "schlimmsten Fall" passt das auch.
14.11.2014, 18:08 (Dieser Beitrag wurde zuletzt bearbeitet: 14.11.2014, 18:08 von Rabe.)
Hi,
(14.11.2014, 17:55)cuba schrieb: Vielen Dank für die schnelle Antwort. Es ist tatsächlich so, dass ich H214 dann ebenfalls als freie Zelle haben muss. Es wäre schön gewesen, wenn dies umgangen hätte werden können....., aber im "schlimmsten Fall" passt das auch.
wieso? Was ist denn das Problem, wenn der Schreibschutz durch das Makro , das das Datum eintragen will, aufgehoben und nach der Eintragung wieder gesetzt wird?
Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("D3,D5,D10,D12,D14,D16")) Is Nothing Then Sheets("Tabelle2").Unprotect Range("H14").Value = Date Sheets("Tabelle2").Protect End If End Sub
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("D3,D5,D10,D12,D14,D16")) Is Nothing Then Me.Unprotect Password:="ABC" Range("H14").Value = Date Me.Protect Password:="ABC" End If End Sub
14.11.2014, 18:15 (Dieser Beitrag wurde zuletzt bearbeitet: 14.11.2014, 18:18 von WillWissen.)
Hi cuba,
so ganz hab ich nicht verstanden, was genau jetzt in deiner Tabelle passieren soll.
Willst du nun das Datumsfeld gegen manuelle Änderungen geschützt haben oder nicht? Und wieso ist jetzt die komplette Spalte D nicht mehr schützenswert?
Ich würde, damit wirklich nur in den manuell auszufüllenden Zellen Einträge vorgenommen werden können, alle Zellen mit Ausnahme dieser Eingabezellen schützen. Da du ein Passwort für den Zellschutz verwendest, musst du dann (vorausgesetzt, du möchtest meinen Vorschlag annehmen) den Code folgendermaßen ändern.
Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
With Sheets("Tabelle2") .Unprotect Password:="abc" If Not Intersect(Target, Range("D3,D5,D10,D12,D14,D16")) Is Nothing Then Range("H14").Value = Date End If .Protect Password:="abc" End With End Sub
Dein Passwort musst du natürlich anstelle des "abc" Textes einfügen.
Gruß Günter Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen. angebl. von Georg Christoph Lichtenberg (1742-1799)
da es ein Change Ereignis ist, betrifft es natürlich die aktive Tabelle. Deswegen braucht es keine Tabellenangabe. Also With Sheets("Tabelle2") kann weg.
Dann wird bei Dir der Schutz bei jeder Änderung aufgehoben und wieder gesetzt, da Du erst danach prüfst, ob die Änderung im angegebenen Bereich liegt. Mehr als der Code von Stefan braucht nicht.