Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Zeile mit Buchstabe sperren
#1
Hallo liebe Gemeinde,

Kurz vorab: Ich bin ein blutiger Anfänger und kann gerade mal =SUMME und Co  :22:
Ich habe nichts (verständliches) gefunden oder ich bin zu dusslig die Suchfunktion richtig zu bedienen. Ihr löst mein Problemchen bestimmt in 30 Sekunden.

Folgende Problematik: Ich benutze eine Exceltabelle als Arbeitszeitkonto für mein Unternehmen. Die Tabelle ist für das ganze Jahr vorgegeben und soweit fertig. Die Mitarbeiter tragen Tag für Tag oder wöchentlich ihre Arbeitszeiten ein und ich als Chef zeichne sie einmal wöchentlich ab. Die Tabelle rechnet natürlich alles ganz brav aus. Herrliches Tool.

Was ich nun möchte ist:
- Tabelle vom jeweiligen Mitarbeiter öffnen
- Blattschutz aufheben
- In der Spalte "Z" zum Beispiel ein "x" eintragen (dann soll die ganze Zeile "Montag" von A bis Y gesperrt sein)
- Blattschutz wieder rein
- Speichern. Fertig. Mitarbeiter kann nicht mehr an vergangenen Tagen rumspielen

Ich würde mich sehr über eure Hilfe freuen.
Schönes Wochenende und viele Grüße
Martin
Antworten Top
#2
Hallo

Wenn du eh mit Blattschutz arbeitest dann Sperre die Zellen die nicht mehr geändert werden dürfen und die anderen gibst du frei.

Mfg Elex
Antworten Top
#3
(22.09.2017, 22:09)Elex schrieb: Hallo

Wenn du eh mit Blattschutz arbeitest dann Sperre die Zellen die nicht mehr geändert werden dürfen und die anderen gibst du frei.

Mfg Elex

Wenn ich das richtig verstehe soll ich:
- Blattschutz aufheben
- mittels Rechtsklick - Formatieren - Schutz - Gesperrt markieren. 
- Blattschutz rein

Bei 20 Mitarbeitern/Tabellen artet das leider wöchentlich in Arbeit aus. Zu viel Klickerei. Habe ich 1 Monat so gemacht Sad
Mir wäre die oben genannte Variante lieber. So könnte ich die Woche einmal schnell durch x-en und speichern.

Viele Grüße
Martin
Antworten Top
#4
Hi

Geht dann aber nur mit VBA.
Ich schaue Morgen wieder ins Forum. Für heut ist Feierabend. Wenn bis da keine Lösung eingegangen ist Versuche ich mich.

Mfg
Antworten Top
#5
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 Target.EntireRow.Locked = (Target.Value = "x")
End Sub

Das habe ich schonmal gefunden. Theoretisch funktioniert es auch ganz gut. Nur gibt es ständig Laufzeitfehler.
Kann ich diesen Code auf bestimmte Zellen pro Zeile (die Eingabefelder, welche keine Formeln hinterlegt haben) begrenzen? Ich vermute, dass sich dann die Laufzeitfehler in Luft auflösen.
Also jetzt nicht EntireRow (Ganze Reihe) sondern aus der Reihe nur H, I, J, K sperren wenn ein x in der gleichen Reihe eingegeben wird!?

Vielen Dank und Viele Grüße
Martin
Antworten Top
#6
Hi,

den Code in eine Prozedur einfügen. Workssheet_Change Prozedur ist hier ungeeignet.
Vorschlag: Zeichne mit dem Rekorder ein kurzes Makro mit Vergabe einer Tastenkombination auf und füge den Code dort ein.

For k = 2 To 366 'kannst du an deinen Bereich anpassen
Code:
Dim k As Long
For k = 2 To 366                    'Zellen in denn ein x stehen kann hier (Z2:Z366)
    If ActiveSheet.Cells(k, 26) = "x" Then
       ActiveSheet.Range(Cells(k, 8), Cells(k, 11)).Locked = True   'Zellen H;I;J;K sperren
       ActiveSheet.Cells(k, 26).Locked = True                       'Zelle Z sperren
    End If
Next k

Mfg Elex
Antworten Top
#7
Hallo Martin,

zuerst einmal musst Du im ungeschützten Tabellenblatt alle Zellen entsperren, da sie per Voreinstellung auf gesperrt stehen.
Sub AlleZellenEntsperren()
 Cells.Locked = False
End Sub

Dann Dein Code etwas erweitert (Passwort entsprechend ändern):
Private Sub Worksheet_Change(ByVal Target As Range)
 Set Target = Target.Cells(1)
 If Target.Column = 26 Then
   Me.Unprotect "Password"
   Target.EntireRow.Locked = Target.Value = "x"
   Me.Protect "Password"
 End If
End Sub

Gruß Uwe
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste