Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1492to1496
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
Zeile sperren nach Eingabe in Zelle
25.05.2016 19:27:23
Steffi
Ein Hallo ins Forum :)
Ich suche mir grad schon seit Stunden nen Wolf - deshalb nun: Help!
Ich habe eine Exel Tabelle in der Arbeitszeiten festgehalten werden. Wenn eine Zeile geprüft wurde, soll das in der Spalte AU mit einem ü gekennzeichnet werden. Mit dieser Eingabe soll die Zeile zur Eingabe gesperrt werden (betrifft Bereich G:AK). Allerdings sind auch schon vorher bestimmte Zellen gesperrt - nämlich die, die Formeln enthalten.
Ich habe mir hier aus dem Forum auch schon was rauskopiert fürs VBE, bekomme aber nen Laufzeitfehler 1004 :(
Kann mir jemand helfen?

23
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeile sperren nach Eingabe in Zelle
25.05.2016 19:32:32
Hajo_Zi
nur wenige sehen Deine Datei und den Code. Da nur wenige auf Deinen Rechner schauen. Frage jemanden der neben Dir sitzt. Der sieht beides.

AW: Zeile sperren nach Eingabe in Zelle
25.05.2016 19:50:29
Steffi
Oh Entschuldigung - mir war nicht bewußt, dass die datei gebraucht wird :(
Hab die Tabelle mal hochgeladen: https://www.herber.de/bbs/user/105795.xlsx
Hoffe, das ist richtig so.
Es soll also wenn in AU etwas eingegeben wird, der bereicht g:AK der entsprechenden Zeile gesperrt werden. Bei Löschen des ü sollte die Zeile wieder frei sein. Vielleicht sogar mit Password? geht das?
Und kopiert hatte ich:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 47 And Target.Value  "" Then
ActiveSheet.Unprotect
Target.EntireRow.Locked = True
ActiveSheet.Protect
End If
End Sub
Bin aber absoluter Anfänger - weiß nicht wirklich was steht *hüstel*

Anzeige
AW: Zeile sperren nach Eingabe in Zelle
25.05.2016 19:55:14
Hajo_Zi
eine Xlsx Datei kann kein Makro enthalten.
Ich vermute mal es wird die Zeile gesperrt.
ich hätte
If Target.Column = 47 And Target.Value = "ü" Then
geschrieben.
Gruß Hajo

AW: Zeile sperren nach Eingabe in Zelle
25.05.2016 20:03:36
Steffi
das war ja auch eine xlsm Datei - die konnte ich irgendwie nur nicht hochladen.
Habe die Änderung gleich probiert. Hab das ins VBE eingetragen - gespecihert. Das Tabellenblatt geschützt und das ü eingetragen. Dann kam folgende Fehlermeldung:
Die Locked-Eingenschaften des Range Objektes kann nicht festgelegt werden.
Geh ich dann auf Debuggen markiert er die Zeile: Target.EntireRow.Locked = True
Gibt das Aufschluss?

Anzeige
AW: Zeile sperren nach Eingabe in Zelle
25.05.2016 20:10:07
Hajo_Zi
schreibe
Rows(Target.Row).Locked = False
ich baue nichts nach die Zeit hat schon jemand investiert.
Gruß Hajo

AW: Zeile sperren nach Eingabe in Zelle
25.05.2016 20:25:18
Steffi
Scheinbar mach ich was falsch - es funktioniert einfach nicht.
Im Moment steht im VBE:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 47 And Target.Value = "ü" Then
ActiveSheet.Unprotect
Rows(Target.Row).Locked = False
ActiveSheet.Protect
End If
End Sub
Tut mir echt leid, habe heute das erste Mal über die Funktion VBE gelesen.
Und den ersten Inhalt aus dem Forum kopiert - da hatte ja vor Jahren schon mal jemand das Problem.
Hatte die Hoffnung so krieg ich das hin.....

Anzeige
AW: Zeile sperren nach Eingabe in Zelle
25.05.2016 20:32:18
Werner
Hallo Steffi,
versuch es mal damit.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 47 Then
If Target.Value = "ü" Then
ActiveSheet.Unprotect Password:="DeinPasswort"
With ActiveSheet
.Range(.Cells(Target.Row, 7), .Cells(Target.Row, 47)).Locked = True
.Protect Password:="DeinPasswort"
End With
ElseIf Target.Value = "" Then
With ActiveSheet
.Range(.Cells(Target.Row, 7), .Cells(Target.Row, 47)).Locked = False
.Protect Password:="DeinPasswort"
End With
End If
End If
End Sub
Beim Eintrag von ü in Spalte AU wird der Bereich von Spalte G bis Spalte AU gesperrt. AU solltest du auch mit sperren, sonst kann ja jeder dein ü wieder raus machen.
Wenn du den gesperrten Bereich wieder freigeben willst, dann den Blattschutz raus nehmen und in der Spalte AU das ü löschen, dann wird der Bereich in dieser Zeile wieder freigegeben und das Blatt wieder geschützt.
Gruß Werner

Anzeige
AW: Zeile sperren nach Eingabe in Zelle
25.05.2016 20:39:12
Steffi
Danke für den Tip mit der Zelle AU - stimmt natürlich.
habe jetzt dein Makro ins VBE kopiert.
gespeichert - Blatt geschützt - ü eingetragen
und bekomme wieder den Laufzeitfehler 1004 - Locked Eigenschaften für Rangeobjekt können nicht festgelegt werden.
klick ich auf Debuggen markiert er mir die Zeile:
.Range(.Cells(Target.Row, 7), .Cells(Target.Row, 47)).Locked = True
ist doch zum verzweifeln...

AW: Zeile sperren nach Eingabe in Zelle
25.05.2016 21:36:00
Werner
Hallo Steffi,
mach mal den Blattschutz raus. Anschließend die Spalten G bis AU auswählen, rechte Maustaste, Format, Register Schutz und da dann den Haken bei gesperrt rausnehmen. Anschließend Blattschutz wieder rein.
Hier stellt sich jetzt noch die Frage, ob sich der Bereich mit den gesperrten Zellen, in denen sich Formeln befinden, mit dem Bereich, den du durch das Makro sperren willst überschneidet.
Sprich befinden sich im Bereich der Spalten G bis AU Zellen mit Formeln die schon gesperrt sind?
Gruß Werner

Anzeige
AW: Zeile sperren nach Eingabe in Zelle
26.05.2016 08:13:25
Steffi
Hey Werner,
Tschudlige die Späte Antwort. War gestern schon im Bett *grins*
Also den Bereich g:AK hatte ich schon entsperrt - also den Haken entfernt. Die Formeln befinden sich im Bereich AL:AT.
Ich könnte die Spalte AU aber auch nach vorne ziehen - also auf den Platz AL setzen. Dann wäre da keine Formel zwischen.
Würde das helfen?
Dank Dir dolle für Deine Unterstützung
Liebe Grüße
Steffi

AW: Zeile sperren nach Eingabe in Zelle
26.05.2016 10:24:08
Werner
Hallo Steffi,
ich habe es auf deine Datenstruktur abgeändert. Das mit dem wieder entsperren habe ich jetzt mit dem Doppelklickereignis gelöst.
Wenn er Bereich gesperrt ist (ü in AU) dann Doppelklick auf das ü der Zeile, die du wieder entsperren willst.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim strPasswort As String
If Target.Column = 47 Then
If Target.Value = "ü" Then
strPasswort = InputBox("Bitte Passwort eingeben", "Passworteingabe")
If strPasswort = NullString Then Exit Sub
ActiveSheet.Unprotect Password:=strPasswort
With ActiveSheet
Target.Value = ""
.Range(.Cells(Target.Row, 7), .Cells(Target.Row, 37)).Locked = False
Target.Locked = False
.Protect Password:="DeinPasswort"
End With
End If
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 47 Then
If Target.Value = "ü" Then
ActiveSheet.Unprotect Password:="DeinPasswort"
With ActiveSheet
.Range(.Cells(Target.Row, 7), .Cells(Target.Row, 37)).Locked = True
Target.Locked = True
.Protect Password:="DeinPasswort"
End With
End If
End If
End Sub
Gruß Werner

Anzeige
AW: Zeile sperren nach Eingabe in Zelle
26.05.2016 18:38:36
Steffi
er bringt mir immer noch den Laufzeitfehler und markiert das Fettgedruckte:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim strPasswort As String
If Target.Column = 47 Then
If Target.Value = "ü" Then
strPasswort = InputBox("Bitte Passwort eingeben", "Passworteingabe")
If strPasswort = NullString Then Exit Sub
ActiveSheet.Unprotect Password:=strPasswort
With ActiveSheet
Target.Value = ""
.Range(.Cells(Target.Row, 7), .Cells(Target.Row, 37)).Locked = False
Target.Locked = False
.Protect Password:="admin"
End With
End If
End If
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 47 Then
If Target.Value = "ü" Then
ActiveSheet.Unprotect Password:="admin"
With ActiveSheet
.Range(.Cells(Target.Row, 7), .Cells(Target.Row, 37)).Locked = True
Target.Locked = True
.Protect Password:="Admin"
End With
End If
End If
End Sub

Anzeige
AW: Zeile sperren nach Eingabe in Zelle
26.05.2016 18:43:30
Steffi
ich habe es einfach nochnmal versucht - dann ging es.
Aber.... der Doppelklick funktioniert nicht. Will heißen, ich krieg die Zeile nicht wieder entsperrt.
Tschuuuuldige *Augenklimper*

AW: Zeile sperren nach Eingabe in Zelle
26.05.2016 19:17:21
Steffi
Ich werd wahnsinnig - jetzt geht es wieder nicht.....

AW: Zeile sperren nach Eingabe in Zelle
26.05.2016 20:33:12
Werner
Hallo Steffi,
bereite mal dein Blatt vor.
1. Wenn du in AU schon ü drin hast dann alle raus
2. Bearbeiten - alles auswählen - Rechts klick im Blatt - formatieren - Schutz - Haken bei Zelle schützen raus
3. Spalten AL bis AT markieren - Recht klick - formatieren - Schutz - Haken bei Zelle schützen rein
4. Blattschutz rein
Ansonsten Beispielmappe bei der es nicht funktioniert hochladen. Kann die aber frühestens am Montag runter laden.
Gruß Werner

Anzeige
AW: Zeile sperren nach Eingabe in Zelle
26.05.2016 20:57:56
Steffi
es geht leider nicht.... ich mach bestimmt nen ganz dussligen Fehler.
Hab die Datei hochgeladen https://www.herber.de/bbs/user/105813.xlsm
Montag ist Prima -bin ja dankbar, dass Du mir helfen willst.
Hab ein schönes Wochenende und DAAAAAAANKEEEE :)

AW: Zeile sperren nach Eingabe in Zelle
26.05.2016 21:39:17
Michael
Hi zusammen,
ich hoffe, Werner ist nicht böse, wenn ich kurz einspringe...
Es gibt einige Sachen zu berücksichtigen:
- in Spalte AU sind verbundene Zellen, d.h. Target.Value produziert einen Fehler, der sich durch Target(1).Value vermeiden läßt.
- die "doubleclick" schreibt in die Tabelle, also wird die Change aufgerufen: deshalb Events erst mal disabled
Das Target.Locked = True hat sich bei mir auch widersetzt, warum auch immer. Komisch, weil wenn man in der Anweisung vorher den Bereich ausdehnt, geht es...
Allerdings ging bei mir der doubleclick nicht, wenn die Zelle in AU gesperrt war.
Und wenn man sie nicht sperrt, kann einfach der Wert überschrieben werden (allerdings werden dadurch die Zellen nicht entlockt, nur das doubleclick geht nicht mehr, weil kein ü mehr drinsteht).
Übrigens kann Steffis "unterste" Variante nicht gehen: einmal ist "Admin" groß, einmal klein geschrieben.
Ist immer ein Gefummel; Datei mit dem bisherigen Stand anbei: https://www.herber.de/bbs/user/105815.xlsm
Schöne Grüße,
Michael
P.S.: soll wirklich nur EINE Zeile gesperrt werden? Ich sperre im Moment mal beide, das ist der erste Parameter beim Resize.

Anzeige
AW: Zeile sperren nach Eingabe in Zelle
27.05.2016 10:43:37
Werner
Hallo Michael,
na da mach dir mal keine Sorgen - nur gemeinsam sind wir stark.
Das mit den verbundenen Zellen wusste ich nicht, wobei da mal wieder die Frage auftaucht, braucht man das? Die machen doch eh nur Ärger.
Warum das Doppelklick-Ereignis bei dir nicht funktioniert? Bei mir ist beim händischen Setzen des Blattschutzes - Gesperrte Zellen auswählen und Nicht gesperrte Zellen auswählen - angehakt. Wenn ich den Haken bei - Gesperrte Zellen anwählen - raus mache, dann funktionier das Doppelklick-Ereignis bei mir auch nicht mehr.
Warum bei dir das Locked = True angemeckert wird kann ich auch nicht sagen, bei mir auf jeden Fall nicht.
Gruß Werner

AW: Zeile sperren nach Eingabe in Zelle
27.05.2016 11:40:04
Steffi
oooooooh - wie cool ist das denn? Ihr habt es geschafft! Es klappt.
Ich freu mich dolle :)
Das mit der Admin schreibweise hatte ich dann auch gemerkt - da hatte ich das hier aber schon hochgeladen. In der Datei hatte ich es aber geändert.
Jetzt spiel ich noch weiter mit der Datei rum. Hab noch einiges was ich da einbauen mag.
Und da ich noch einige andere Datein habe, die ich automatisieren möchte, lesen wir uns sicher seeeeeeehr bald wieder.
Erst einmal habt ihr mich sehr glücklich gemacht :) Danke Euch *freu*

AW: Danke für die Rückmeldung
27.05.2016 13:22:12
Werner
Hallo Steffi,
da gebührt der Dank wohl eher Michael weil meine Version bei dir ja wohl nicht funktioniert hat.
Trotzdem Danke für die Rückmeldung.
Gruß Werner

von mir auch, und @Werner
27.05.2016 14:29:35
mir
Hi Werner,
ich sehe das auch so mit "gemeinsam", da sind wir auf einer Linie.
Ansonsten hätte ich mich vielleicht nicht eingeschaltet, wenn Du nicht bereits Vorarbeit geleistet hättest: an vorhandenem Code herumzubasteln ist immer einfacher als ihn komplett zu entwickeln.
Also: eine Gemeinschaftsaktion im besten Sinne...
Schöne Grüße,
Michael

Kann ich die Zeile auch in Etappen sperren
29.05.2016 17:04:08
Steffi
Guten Abend:)
wie vorhergesagt.... ich stoß absolut an meine Grenzen.
Das jetzt bei eingabe des ü die Zeile gesperrt und wieder entsperrt wird, klappt ....... Aber, beim herumprobieren ist mir aufgefallen, dass ich die Einträge ja wöchentlich bearbeite....
Das heißt, ich müsste nach Freigabe nur die Zellen in der Spalte sperren, in denen zu dem Zeitpunkt ein Inhalt ist. In der Folgewoche tragend die Kollegen dann die entsprechenden Daten ein - am Ende der Woche geb ich dann wieder frei etc.
Hab eine Version versucht, in der die Zellen direkt nach Eintrag gesperrt werden. Das hab ich hinbekommen. Aber das Makro, dass dann nur die Zellen Fett werden, die zu dem Zeitpunkt inhalt haben.... das krieg ich nicht hin....
Habt ihr Ideen?

AW: Kann ich die Zeile auch in Etappen sperren
29.05.2016 18:51:47
Michael
Hi,
wenn Du uns das Makro zeigst, mit dem Du das machst?
Im Prinzip kannst Du doch im gleichen Rutsch "einfetten", und zwar am besten VOR dem Sperren, z.B.:
Zelle.Font.Bold = True
Zelle.Locked = true
Schöne Grüße,
Michael

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige