Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
280to284
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
280to284
280to284
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zellen automatisch sperren

Zellen automatisch sperren
20.07.2003 19:35:26
Franz W.
Hallo Forum,
ich möchte, dass nach Eingabe in eine Zelle der Spalte I (=9) in dieser Zeile die Zellen von C bis I sperrt und dachte, das müsste mit folg. Code gehen, tut's aber nicht:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim c%, r%
c = Target.Column
r = Target.Row
If Not Target.Column = 9 Then Exit Sub
If Target.Column = 9 Then
Worksheets("Daten").Unprotect
Range(Cells(c - 6, r), Cells(c, r)).Locked = True
Worksheets("Daten").Protect
End If
End Sub

Er tut einfach gar nix, ohne Fehlermeldung. Könnt Ihr mir bitte helfen?
Danke im Voraus
Grüße
Franz

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
An alle :-)
20.07.2003 19:58:45
Franz W.
Hallo Ihr drei,
danke für die Antworten. Mit dem doppelten If habt Ihr natürlich recht. Das passiert, wenn ein Anfänger an anderen Dingen festhängt. Der Zellschutz bleibt, aber mit folgendem Code habe ich vorher genau diese Zellen entsperrt:
Sub NeuenKundenEingeben()
Dim iHilf As Integer
Dim strName As String
With Sheets("Daten")
.Unprotect
.Range("DatenTabelle").Select
iHilf = Selection.Row + Selection.Rows.Count - 1
.Rows(iHilf).EntireRow.Insert
.Cells(iHilf, 2) = [B1] + 1
.Cells(iHilf, 3).Select
.Range(Cells(iHilf, 3), Cells(iHilf, 9)).Locked = False
.Protect
End With
End Sub

Und das klappt auch, ich kann Eingaben machen. Das übrige Blatt bleibt unzugänglich. Obwohl der gesamte Bereich "Datentabelle" gesperrt ist, sind diese Zellen entsperrt und zur Eingabe frei. Nun sollen diese aber nach Eingabe in die letzte Zelle der neuen Zeile wieder gesperrt werden. Aber er tut nichts. Beschwert sich zwar, wenn ich das .Unprotect weglasse. Sperrt aber nicht. Habe ich den Range irgendwie falsch angegeben? Aber im oberen Code beim Entsperren tut ers ja auch?!? :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim c%, r%
c = Target.Column
r = Target.Row
If Not Target.Column = 9 Then Exit Sub
Worksheets("Daten").Unprotect
Range(Cells(c - 6, r), Cells(c, r)).Locked = True
Worksheets("Daten").Protect
End Sub

Grüße
Franz

Anzeige
AW: An alle :-(
20.07.2003 20:08:16
Franz W.
Ja ist ja klar! Ist mir jetzt aber peinlich, sorry, dass ich Euch beansprucht habe.
Danke Euch und beschämte Grüße
Franz

AW: An alle :-(
20.07.2003 20:13:57
PeterW
Hallo Franz,
muss dir nicht peinlich sein. Zeigt es doch mal wieder, dass man sich die Problemstellung genau anschauen sollte, bevor man vorschnell (wenig hilfreich) antwortet. :-)
Gruß
Peter

AW: An alle :-(
20.07.2003 20:18:02
Franz W.
Hallo Peter,
Du salbst mir die Seele, aber auf sowas hätt ich vielleicht schon auch mal selber drauf kommen können.
Trotzdem danke und Grüße
Franz

AW: An alle :-)
20.07.2003 20:06:06
Hajo_Zi
Hallo Franz
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Target.Column = 9 Then Exit Sub
Worksheets("Daten").Unprotect
Range(Target.Offset(0, -6), Target).Locked = True
Worksheets("Daten").Protect
End Sub

Gruß Hajo
Falls Code vorhanden wurde dieser getestet unter Betriebssystem XP Pro und Excel Version XP SBE.
Bitte kein Mail, Probleme sollen im Forum gelöst werden.
Microsoft MVP für Excel
Das Forum lebt auch von den Rückmeldungen.

Anzeige
AW: An alle :-)
20.07.2003 20:03:25
PeterW
Hallo Franz,
bei Cells kommt erste die Zeile, dann die Spalte.
Gruß
Peter

AW: Zellen automatisch sperren
20.07.2003 19:45:18
PeterW
Hallo Franz,
hast du vorher den Zellschutz für die gesamte Tabelle ausgeschaltet? Standardmäßig steht der Schutz auf gesperrt und mit dem Setzen des Blattschutzes dürften dann überhaupt keine Eingaben mehr möglich sein.
Gruß
Peter

AW: Zellen automatisch sperren
20.07.2003 19:40:26
andre
hallo franz,
markiere die zeile c = ... mit F9.
dann bleibt es bei ausführung stehen und du kannst es schrittweise testen, überwachungen hinzufügen ...
übrigens
...geht auch worksheet_change
...brauchst du das zweite if... nicht, weil wenn nicht 9 dann exit sub, also bleibt nur 9 übrig...
gruss andre

Anzeige
AW: Zellen automatisch sperren
20.07.2003 19:38:38
Hajo_Zi
Hallo Franz
nach Eingabe ist es
Private Sub Worksheet_Change(ByVal Target As Range)
wenn Not Target.Column = 9 zu trifft braucht es nicht nochmal überprüft werden ob es 9 ist ode sehe ich das falsch??
Gruß Hajo
Falls Code vorhanden wurde dieser getestet unter Betriebssystem XP Pro und Excel Version XP SBE.
Bitte kein Mail, Probleme sollen im Forum gelöst werden.
Microsoft MVP für Excel
Das Forum lebt auch von den Rückmeldungen.

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige