Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1052to1056
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

Bereich automatisch sperren/entsprren

Bereich automatisch sperren/entsprren
27.02.2009 11:52:16
Ina
Hallo Forum,
ich möchte im Tabellenblatt "Feb" den Zellschutz der Zellen D33:S33 automatisch aufheben, wenn das Tabellenblatt geöffnet wird und das aktuelle Jahr ein Schaltjahr ist bzw. den Zellschutz aktivieren, wenn das aktuelle Jahr kein Schaltjahr ist.
Wer kann mir weiterhelfen?
Damit klappt das leider nicht...

Sub Schaltjahr()
If [B33] > "" Then
[D33:S33].Select
Selection.Locked = False
Selection.FormulaHidden = False
End If
End Sub



Sub KeinSchaltjahr()
If [B33] = "" Then
[D33:S33].Select
Selection.Locked = True
Selection.FormulaHidden = True
End If
End Sub


Danke für Deine Hilfe vorab!
Gruß, Ina

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bereich automatisch sperren/entsprren
27.02.2009 12:06:28
Ramses
Hallo
Was klappt denn nicht ?
Gruss Rainer
AW: Bereich automatisch sperren/entsprren
27.02.2009 12:19:41
Ina
Hallo Ramses,
danke für Deine Antwort.
Das Problem ist die Sache mit der "Automatik"... Das Makro läuft nur, wenn es aufgerufen wird.
Ich möchte aber, das - sobald ich das Tabellenblatt öffne - automatisch geprüft wird, od das aktuelle Jahr ein Schaltjahr ist, oder eben nicht.
Die Formel für das Tabellenblatt müsste also lauten:
Wenn aktuelles Jahr = Schaltjahr, dann D33:S33 entsperren, wenn aktuelles Jahr = kein Schaltjahr D33:S33 sperren.
Hast Du eine Idee?
Danke, Ina
AW: Bereich automatisch sperren/entsprren
27.02.2009 12:41:21
Renee
Hi Ina,
Versuch's mal mit diesem Code im entsprechenden Tabelleblatt:

Private Sub Worksheet_Activate()
Dim bSchalter As Boolean
bSchalter = DateSerial(Year(Now), 2, 29) = DateSerial(Year(Now), 3, 1)
ActiveSheet.Unprotect
With ActiveSheet.Range("D33:S33")
.Locked = bSchalter
.FormulaHidden = bSchalter
End With
ActiveSheet.Protect
End Sub


GreetZ Renée

Anzeige
AW: Bereich automatisch sperren/entsprren
27.02.2009 12:54:01
Ina
Hallo Renée,
danke für Deinen Beitrag.
Richtig, Test so nicht möglich... Leider!
Angenommen, das aktuelle Jahr stände in B1 der Tabelle "Feb", wäre es möglich (wegen Test), den Code entsprechend zu ändern und wenn ja, wie müsste er dann lauten?
Danke für die Mühe!
Grüsse, Ina
AW: Bereich automatisch sperren/entsprren
27.02.2009 12:59:03
Renee
Hallo Ina,
Das war ein kleiner Scherz. Ich kann dir versichern, dass der Code läuft.
Aber damit du trotzdem beruhigt schlafen kannst, setze einfach mal statt die Ausdrücke Year(Now) den festen Wert 2012 ein, denn das ist das nächste Schaltjahr.
GreetZ Renée
AW: Bereich automatisch sperren/entsprren
27.02.2009 13:18:22
Ina
Hallo Renée,
hmm... Das klappt nicht!
Liegt das vielleicht an der Einstellung "EnableSelection" = "xlUnlockedCells"?
Grüsse, Ina
Anzeige
Ich liebe, hmm... Das klappt nicht!
27.02.2009 13:29:17
Renee
Hi Ina,
Wieso nicht beschreiben was nicht klappt ?
Lade eine Beispielmappe, in der es nicht klappt !
GreetZ Renée
AW: Ich liebe, hmm... Das klappt nicht!
27.02.2009 14:02:06
Ina
Hi Renée,
Sorry, war etwas dürftig, meine Fehlerbeschreibung!
Also, ich klicke das Register Feb an - dann sollte ja eigentlich der Schutz in D33:S33 aufgehoben sein - und versuche Zahlen einzugeben, aber es kommt die Meldung "Die Zelle oder das Diagramm... ist schreibgeschützt".
Funktioniert irgendwie nicht.
Grüsse, Ina
AW: Ich liebe, hmm... Das klappt nicht!
27.02.2009 14:13:00
Renee
Hi Ina,
D33:S33 ist aber nur erlaubt, wenn es ein Schaltjahr ist. 2009 ist kein Schaltjahr!
Wie lautet den der Code im Tabelleblatt "Feb" ? Rechtsklick Tabellenreiter "Feb"- Code anzeigen

Kopieren und hier posten!
GreetZ Renée
Anzeige
AW: Ich liebe, hmm... Das klappt nicht!
27.02.2009 14:17:29
Ina
Hi Renée,
wie Du geschrieben hattest:

Private Sub Worksheet_Activate()
Dim bSchalter As Boolean
'bSchalter = DateSerial(Year(Now), 2, 29) = DateSerial(Year(Now), 3, 1)
bSchalter = DateSerial(Year(2012), 2, 29) = DateSerial(Year(2012), 3, 1)
ActiveSheet.Unprotect
With ActiveSheet.Range("D33:S33")
.Locked = bSchalter
.FormulaHidden = bSchalter
End With
ActiveSheet.Protect
End Sub


Habe ich etwas falsch interpretiert?
Grüsse, Ina

Ja falsch interpretiert, gelesen...
27.02.2009 14:23:38
Renee
Hi Ina,
Eigentlich sollte frau meine Post's nicht interpretieren, sondern nur lesen ;-))
Zitat: statt die Ausdrücke Year(Now) den festen Wert 2012 ein
führt zu:

bSchalter = DateSerial(2012, 2, 29) = DateSerial(2012, 3, 1)


GreetZ Renée

Anzeige
AW: Ja falsch interpretiert, gelesen...
27.02.2009 14:34:31
Ina
Hi Renée,
ja, ja, diese Frauen... Verstehen immer alles falsch ... So sind wir halt :o)
Super, natürlich klappt das jetzt! Vielen Dank!
Grüsse, Ina
Wieso wir ? ... Ich nicht ;-)) (owT)
27.02.2009 14:36:48
Renee

AW: hmm.... (;-) (owT)
27.02.2009 23:34:19
Uwe
.
Testen erst 2012 möglich ! ;-) (owT)
27.02.2009 12:42:36
Renee

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige