Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1060to1064
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
Zellen einfügen schützen
13.03.2009 22:16:43
Mone
Hallo ihr Experten,
eine Frage:
Wie kann ich in einem Tabellenblatt Zeile 1 bis 29 so schützen, dass man keine Zellen mehr einfügen kann.
Alles andere soll erlaubt sein. Auch sollte eine bestimmte Zelle in diesem Bereich, meinetwegen J13 total geschützt sein, da sich darin eine Formel befindet. Kann man hierfür einen Code in VBA ins Tabellenblatt eingeben?
Ich danke schonmal für eure Hilfe.
Grüssli
Mone

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellen einfügen schützen
13.03.2009 23:50:46
Oberschlumpf
Hi Mone
Was hältst du von Blattschutz?
Damit wird verhindert, dass sowohl Zellwerte, als eben auch das Einfügen/Löschen von Zeilen/Spalten verhindert wird.
Und wenn im zu schützenden Bereich Zellen sind, dessen Werte du ändern willst/musst, kannst du über Zellen formatieren den Schutz für einzelne Zellen aufheben.
Hilfts?
Ciao
Thorsten
AW: Zellen einfügen schützen
13.03.2009 23:59:24
Mone
Hallo Thorsten
danke für deine Antwort.
Hilft aber nicht. Ich kenne den Umgang mit Blattschutz. Aber wenn ich die Zeilen unterhalb zeile 29 als "nicht geschützt" markiere" erlaubt mir Excel dann dort trotzdem nicht mehr die Funktion "Zeilen einfügen". Aber ich muss ab Zelle 29 Zeilen einfügen, nur darüber darf ich das nicht mehr, da ich durch Formulare/Textfelder bestimmte Zeilen befülle. WEnn diese aber durch "Zeilen einfügen" verschoben werden, dann stimmt das Format nicht mehr. Hm....schade, scheint wohl doch keine Möglichkeit zu geben, als meine Mitarbeiter strikt anzuweisen, oberhalb Zeile 29 keine Zeilen einzufügen :-(
Danke trotzdem für deine Antwort.
Gruss
mone
Anzeige
AW: Zellen einfügen schützen
14.03.2009 00:34:58
Oberschlumpf
Hi Mone
Sorry, habe deine Frage nicht richtig gelesen. Den Zusatz Alles andere soll erlaubt sein, hatte ich "übersehen".
Hab mit Hilfe von Google diese Lösung erstellt:
https://www.herber.de/bbs/user/60300.xls
In meinem Bsp musst du eine Hilfsspalte verwenden, die bei jeder Zellwertänderung auf korrekten Inhalt überprüft wird - dazu gehört auch Zeilen löschen&einfügen, was ja verhindert werden soll.
Wenn, wie im Bsp, die Spalte H NICHT als Hilfsspalte verwendet werden kann, dann musst du den Code entsprechend anpassen.
Eine Hilfe, welcher Code angepasst werden muss, gibt es in der Bsp-Datei.
Konnte ich nun besser helfen?
Ciao
Thorsten
Anzeige
AW: Zellen einfügen schützen
14.03.2009 12:02:02
Mone
Hallo Thorsten
für deine Mühe danke ich dir herzlich.
Deine Idee ist auch gut, aber für meine Zwecke leider nicht so brauchbar.
Das Blatt ist bei mir eine Rechnung und im oberen Teil sind die kaufmännischen Angaben, wie Bearbeiter, Tel., Kundenadresse, Datum, RE-Nr. etc. . Ab Zeile 29 füge ich die Produkte ein, daher muss ich Zeilen einfügen oder löschen können. Die Daten im oberen Teil werden mittels Formular/VBA eingetragen. Aber ich habe die Zellen damit genau definiert. Die Lösung mit VBA habe ich genommen, um Formeln zu umgehen, die dann ja eventuelle wieder überschrieben werden könnten.
Bei deiner Lösung muss ich wieder Formeln eingeben.
Es ist schwer zu beschreiben, aber ich hoffe, ich habe mich trotzdem einigermassen verständlich ausgedrückt.
Danke nochmal für deine Arbeit!
Gruss
mone
Anzeige
AW: Zellen einfügen schützen
14.03.2009 20:10:45
Oberschlumpf
Hi Mone
Ich bleib zuerst mal bei meinem Code von heute :-)
Denn noch bin sicher, dass der Code auch bei dir funktioniert.
Ich schrieb ja, wenn Spalte H als Hilfsspalte nicht passt, weil diese Spalte schon für deine Werte verwendet wird, dann nimmst du einfach eine andere, komplett leere Spalte - z Bsp Spalze Z - als Hilfsspalte, die, wenn alles funktioniert, ausgeblendet wird, und dann von niemandem gesehen wird.
Wenn Z auch nicht passt, nimmst du eine andere Spalte, die leer ist. Dir stehen mind. 256 Spalten zur Verfügung :-) Oder brauchst du wirklich alle Spalten für deine Werte?
Du kannst uns ja auch mal (d)eine Bsp-Datei zeigen - mit Bsp-Daten.
Dann sehen wir, welche Spalten unbenutzt sind, und können den Code entsprechend anpassen.
Ciao erst mal
Thorsten
Anzeige
AW: Zellen einfügen schützen
15.03.2009 16:54:06
Mone
Hallo Thorsten,
jetzt muss ich mich vor dir verneigen! hab mich nun mal ausführlich mit deiner Methode beschäftigt.....und finde sie genial! ;-) Du hast wirklich Recht, es funktioniert. Natürlich brauch ich nicht alle 256 Spalten. Ich brauche alle Spalten bis S. Hab aber den Testeintrag nun in Spalte 47 gemacht, ganz weit hinten, damit es niemand sieht :-) Die Farbe der Schrift für *testeintrag* hab ich auch unkenntlich gemacht :-)
Es funktioniert tatsächlich supi! Danke für deine grossartige Hilfe!
Bei deinem anderen Code fand ich halt deine Messagebox so elegant :-)
Gruss
mone
Anzeige
AW: Zellen einfügen schützen
15.03.2009 18:55:42
Oberschlumpf
Hi Mone
Nun steh aber wieder auf...zu viel (ver)beugen macht Rückenaua :-)
Und wenn es dir nur um die MsgBox geht, dann tausch deinen Code gegen diesen hier aus:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim liZeile As Integer
For liZeile = 1 To 29
If Cells(liZeile, 8)  "testeintrag" Then
MsgBox "Löschen/Hinzufügen von Zeilen/Spalten in diesem Bereich nicht erlaubt!", _
vbExclamation, "unerlaubter Zugriff"
With Application
.EnableEvents = False
.Undo
.EnableEvents = True
End With
End If
Next
End Sub


Noch ein kleiner Verbesserungsvorschlag:
Du schreibst, dass du nun Spalte 47 als Hilfsspalte verwendest.
Das kann aber bedeuten, dass deine Datei nun auffallend mehr Speicherplatz benötigt, da Excel "denkt", du brauchst 47 Spalten, und speichert eben alle Infos für 47 Spalten - aber du brauchst ja nur 20 Spalten...(A bis S = 1 bis 19 + 1 Hilfsspalte).
Deswegen empfehle ich dir, anstelle von Spalte AU, die Spalte T zu verwenden und auszublenden.
Ausblenden geht, wie folgt:
vorher
Userbild
dann mit Rechtsklick auf den Spaltenkopf T,
und mit Links dann "Ausblenden" anklicken, was so aussieht
Userbild
das Ergebnis sieht so aus
Userbild
Nun sind S und U sichtbar, und T ist ausgeblendet.
Aber natürlich kannst du auch die Schriftfarbe in T gleich der Hintergrundfarbe einstellen.
Funktionierts denn mit der MsgBox nun auch bei dir? :-)
Ciao
Thorsten

Anzeige
AW: Zellen einfügen schützen
16.03.2009 00:09:46
Mone
Hallöchen Thorsten,
deine Lösung funktioniert obergenial :-) !!!
und ich hab mich schon gewundert, warum die Datei immer grösser und grösser wird :-)
Ich hab nur den Text in der MsgBox etwas freundlicher verfasst......aber sonst funktioniert alles einwandfrei!
Dank dir tausendmal für deine Mühe!
Bis bald
und Grüsse
mone
AW: Zellen einfügen schützen
14.03.2009 12:34:12
Mone
Hallo Thorsten....das ist ja witzig....
jetzt hab ich ein wenig weiter gesucht und von dir aus dem Jahr 2007 folgenden Code gefunden.
Ist genial. Das ist ungefähr genau das, was ich suche....allerdings müsste jetzt nur noch möglich sein, dass die Eingaben in Zellen erlaubt sind, eben nur das Hinzufügen und/oder Löschen nicht möglich ist....Kann man in dem Code nicht eine kleine Anpassung machen? ich fummel mal ein wenig rum, vielleicht schaff ich es ja :-)

Private Sub Worksheet_Change(ByVal Target As Range)
Dim lbMsg As Byte, liIndex As Integer
If Not Intersect(Target, Range("A1:J29")) Is Nothing Then
If InStr(1, Target.Address, ":") > 0 Or InStr(1, Target.Address, ",") > 0 Then
For liIndex = 1 To Target.Count
If Target(liIndex).Value = "" Then
lbMsg = MsgBox("Löschen eines Wertes in diesem Bereich nicht  _
erlaubt!", vbExclamation, "unerlaubter Zugriff")
With Application
.EnableEvents = False
.Undo
.EnableEvents = True
End With
Exit For
End If
Next
Else
If Target.Value = "" Then
lbMsg = MsgBox("Löschen eines Wertes in diesem Bereich nicht erlaubt!",  _
_
vbExclamation, "unerlaubter Zugriff")
With Application
.EnableEvents = False
.Undo
.EnableEvents = True
End With
End If
End If
End If
End Sub


Anzeige
AW: Zellen einfügen schützen
14.03.2009 13:20:30
Gerd
Hallo Mone,
hoffentlich macht keiner fehlerhafte Eingaben, die er korregieren möchte.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Len(Target.value) > 0 Then Application.Goto Cells(1, 1)
End Sub


Gruß Gerd

59 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige