1.8k Aufrufe
Gefragt in Tabellenkalkulation von marc_k Einsteiger_in (49 Punkte)
Hallo Leute,

dieses mal habe ich das Problem das ich eine Zelle mit einer Gültigkeitsprüfung überwache (Wert darf nicht höher als Zahl 5 sein).
Das Funktioniert auch ohne Probleme, nur wenn ich was in die Zelle eingebe, egal ob gültig oder nicht, wird der Blattschutz ausgeschaltet.

WARUM ?!?

Habe ich irgendeine Einstellung übersehen?
Kann ich Excel sagen er soll ihn wieder einschalten?
Ich benutze MS Excel 2007.

Ich danke schon mal für Mühe.

Gruss marc

5 Antworten

0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo Marc,

das kann ich bei mir nicht nach vollziehen.
Kannst Du diese Mappe evtl. hoch laden?

Gruß
Rainer
0 Punkte
Beantwortet von
Hi,

Wenn dieses Problem bei der Datei auftritt, die Du in diesem Thread behandelt hast, dann liegt es an eben diesem Code.

Set RaBereich = Range("F7:F31, G7:G31, I7:I31") ' Bereich der Wirksamkeit festlegem
ActiveSheet.Unprotect "Passwort" ' Schutz der Tabelle aufheben
Set RaBereich = Intersect(RaBereich, Range(Target.Address))
If RaBereich Is Nothing Then Exit Sub


Hier hebst Du den Schutz z.B. selbst auf, und springst bedingt aus dem Macro, ohne die Tabelle wieder zu schützen. Da würde ich den Schutz erst nach der Aussprungprüfung aufheben.

bye
malSchauen
0 Punkte
Beantwortet von marc_k Einsteiger_in (49 Punkte)
Hi ihr beiden.

Erst mal zu malSchauen,

ich verwende die Datenüberprüfung von Excel 2007, ist unter dem Register Daten zu finden, habe also kein Makro verwendet. Wäre anscheinend besser gewesen.
Wie müsste es den aussehen, habe schon versucht das andere Makro entsprechen ab zu ändern und hat nartürlich nicht funktioniert. :-(
Es soll auf dem Blatt die Zellen D7 bis D31 überprüft werden ob ein Wert mit zwischen 0 bis 4 eingegeben wurde. Wenn ja denn wert in die Zelle schreiben und wenn nicht eine MsgBox anzeigen z.B. Falscher Wert.

Und zu Rainer,

muss erst mal rausbekommen wie ich die Datei hochladen kann, werde mich dann wieder melden. :-)
0 Punkte
Beantwortet von
Hi,

Es handelt sich also um genau die Datei und um genau die Tabelle, welche den Code aus dem anderen Thread enthält?

Anhand des Problems,der verwendeten Zeilen und Deiner AW3 gehe ich jetzt einfach mal davon aus.

Du kannst die "Datenüberprüfung von Excel 2007" ruhig weiterverwenden. Dafür musst Du nun nichts eigenes schreiben. Nur wenn die Überprüfung abgeschlossen ist und der Wert in die Zelle eingetragen ist, dann wird das Worksheet_Change-Ereignis ausgelöst. Und in diesem Code ist Dein selbstgemachtes "Problem". Siehe AW2:

Du hebst den TabellenSchutz auf, und wenn dann "Target.Address" sich nicht mit F7:F31, G7:G31, I7:I31 überschneidet, dann beendest Du das Makro. =Tabelle nicht geschützt. Ich habe in AW2 gemeint, dass Du erst alle Bedingungen prüfen solltest, ob Du überhaupt das Makro abarbeitest und erst dann den Schutz aufhebst. Dazu musst Du in diesem Fall einfach die Zeile ActiveSheet.Unprotect "Passwort" ' Schutz der Tabelle aufheben hinter die letzte Prüfung verschieben.

Set RaBereich = Range("F7:F31, G7:G31, I7:I31") ' Bereich der Wirksamkeit festlegem
Set RaBereich = Intersect(RaBereich, Range(Target.Address))
If RaBereich Is Nothing Then Exit Sub
ActiveSheet.Unprotect "Passwort" ' Schutz der Tabelle aufheben
Application.EnableEvents = False ' Reaktion auf Zellveränderung abschalten


Datei hochladen:
z.B. bei www.file-upload.net/ Deine Datei hochladen. Nach dem Upload erhälst Du dort einen DownloadLink. Diesen gibst Du dann hier in einem Posting bekannt.

bye
malSchauen
0 Punkte
Beantwortet von marc_k Einsteiger_in (49 Punkte)
Ok hast gewonnen malSchauen, ;-)

habe es jetzt verstanden und geändert und sie da es geht. :-)

Ich danke dir für deine hilfe und Gedult.

Und auch eine ngrossen dank an Rainer.

Wäre ohne euch wohl schon in der Irrenanstalt.

Gruss Marc
...