3k Aufrufe
Gefragt in Tabellenkalkulation von benjaminm Mitglied (631 Punkte)
Hallo @ all,

ich hab da mal wieder eine Frage.

Wie kann ich in Excel ´97, Zeilen und Spalten sperren?
Nicht einzelne Zellen!
Ich möchte das die Zeilen- und Spaltenbreiten nicht veränderbar sind.
Wenn ich aber das Blatt schütze, kann ich meine Makros nicht mehr ausführen.Dieses soll aber gewährleistet sein.

Also, ich brauche nen Lösungsvorschlag wie ich die Tabelle weiter nutzen kann, ohne das es die Möglichkeit gibt die Breiten der Spalten und Zeilen zu ändern.

Habt ihr ne Idee?

Vielen Dank im Vorraus

Benjae

9 Antworten

0 Punkte
Beantwortet von coros Experte (4k Punkte)
Hallo Benjae,

Du kannst auch trotz Blattschutz Deine Makros anwenden. Du muss nur an dem Punkt, an dem Dein Makro etwas in das gesperrte Blatt schreibt oder auch gleich am Anfang des Makros, das ist egal, den Blattschutz mit

Sheets("Blattname").Unprotect Password:="Das Blattschutzpasswort"aufheben und am Ende das Makros diesen mit

Sheets("Blattname").Protect Password:="Das Blattschutzpasswort"wieder einschalten.

MfG,
Oliver
[sub]Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du[/sub]
[sup] ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.[/sup]
0 Punkte
Beantwortet von benjaminm Mitglied (631 Punkte)
Hallo Oliver,

danke für deine Hilfe.
die Lösung ist echt gut, jedoch arbeitet mein Makro mit diesem Array
(hier ein Bsp. bevor ich lang erkläre)
Dim Monat
Monat = Array("", "Jan", "Feb",
"Mrz", "Apr", "Mai", "Jun", "Jul",
"Aug", "Sep", "Okt", "Nov", "Dez")
Name = ActiveSheet.Name

Wenn ich deinen Code davor setze funzt es auf keinen Fall, da der Blattname nicht definiert ist.
Das Makro wird aus dem jeweiligen Tabellenblatt gestartet!
(siehe letzte Zeile im Code)

Nun weiß ich nicht, ob es etwas bringt den Code irgendwo anders im Makro unterzubringen, da dieser ja den Blattname abfragt. Gibts da noch ne andere Lösung?Oder ne Änderung im Code?

Danke & Gruß
Benjae
0 Punkte
Beantwortet von coros Experte (4k Punkte)
Hallo Benjamin,

ich kenne Deine Makros nicht und weiß auch nicht, was diese machen. Dein Codeschnipsel, den Du gepostet hast hilft da auch nicht weiter. Wie bereits geschrieben, musst Du an dem Punkt, an dem Du in ein Tabellenblatt schreibst, für dieses Tabellenblatt den Schutz aufheben. Das Blatt wirst Du ja wohl irgendwie in Deinem Makro ansprechen.

MfG,
Oliver
[sub]Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du[/sub]
[sup] ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.[/sup]
0 Punkte
Beantwortet von
Hi,

@Benjae (BenjaminM)
Was spricht gegen
name = ActiveSheet.name
Sheets(name).Unprotect
oder gegen
ActiveSheet.Unprotect
.

btw: Ist der Tabellenschutz mit Passwort belegt? Sind die Passwörter der verschiedenen Tabellen identisch?

bye
malSchauen
0 Punkte
Beantwortet von benjaminm Mitglied (631 Punkte)
Danke Oliver für den Gedankenanstoß.

Habe das Problem gelöst, mänchmal kann alles so einfach sein!

Habe einfach unter meinem "Codeschnippsel" folgendes geschrieben:

ActiveSheet.Unprotect
und schon ist der Blattschutz aufgehoben.

Am Ende noch
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True

Und das Blatt ist wieder geschützt!
(alles ohne Passwort!)

Wenn ich ein Passwort anlege, muss ich es beim Makro Start manuell eingeben. aber so ist schon schön!

Danke & Gruß Benjae
0 Punkte
Beantwortet von coros Experte (4k Punkte)
HAllo Benjamin,

das was Du im Moment machst, funktioniert aber nur solange, wie Dein Blattschutz kein Passwort hat. Verwendest Du ein Passwort beim Blattschutz musst Du es mit übergeben, wie in AW1 aufgeführt.

MfG,
Oliver
[sub]Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du[/sub]
[sup] ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.[/sup]
0 Punkte
Beantwortet von
Hi,

@Coros
Ich hab es hier unter 2007 gerade getestet. Ist ein Passwort vergeben fordert Dich die Codezeile ActiveSheet.Unprotect zur Eingabe des Passwortes auf. Funktioniert auch, solang das Passwort korrekt eingegeben wird. Bei Fehleingabe -> Laufzeitfehler (klar). Dieser Fall sollte dann bei Verwendung von Passworten nat. abgefangen werden.

bye
malSchauen
0 Punkte
Beantwortet von coros Experte (4k Punkte)
Hallo,

und damit diese Frage nicht kommt, muss das Passwort mit übergeben werden, wie in AW1 geschrieben. Daher auch meine Anmerkung in AW6.

MfG,
Oliver
[sub]Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du[/sub]
[sup] ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.[/sup]
0 Punkte
Beantwortet von benjaminm Mitglied (631 Punkte)
Hallo @ all,

der Oliver hat Recht!

Habe es gerade getestet und bei vergabe eines Passwortes muss dieses übergeben werden. s.o. AW1!

In meinem Fall sieht das so aus:
ActiveSheet.Unprotect Password:="Passwort"

ActiveSheet.Protect Password:="Passwort"
Und das funzt absolut, sogar unter Excel ´97!

Gruß Benjae
...