Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
168to172
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
168to172
168to172
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

fehlerhafte protect-Methode

fehlerhafte protect-Methode
18.10.2002 19:13:59
krauty
Hallo,
habe hier ein Problem, dass ich mir nicht erklären kann und bitte um Eure Hilfe / Euren Rat:
habe unter Excel2000 ein recht umfangreiches Makro programmiert. Arbeite in einer Datei mit 13 Tabellenblättern, von denen die ersten 4 geschützt sind. In diesen worksheets befinden sich je 2 ComboBoxen und 2 Schaltflächen. Bei Ausführung eines Makros wird zuerst der Blattschutz aufgehoben
For w = 1 to 4
Worksheets(w).Activate
ActiveSheet.Unprotect
Next w
und nach Abarbeitung des Codes werden die Blätter wieder geschützt.
For w = 1 To 4
Worksheets(w).Activate
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Next w

Mein Problem: unter Excel2000 läuft alles absolut fehlerfrei, Excel97 weigert sich aber, den Code fehlerfrei auszuführen! Jedesmal erhalte ich eine Fehlermeldung, dass die protect- bzw. unprotect-Methode fehlerhaft sei! Leider habe ich kaum Zugriff zu Office97, so kann ich nicht allzu viel ausprobieren. Wenn ich aber ein Makro aufzeichne ("Extras", "Schutz", "Blatt schützen" bzw. "Blattschutz entfernen") dann sieht alles genau so aus! An der Schleife kann es doch auch nicht liegen?
Bei combobox_change bzw. commandbutton_click wird eine Variable (Name des Tabellenblatts) übergeben und ein separates Modul aufgerufen. Kann es vielleicht daran liegen?
Wer kann helfen?

Gruß,
Markus

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

Betreff
Datum
Anwender
Anzeige
Re: fehlerhafte protect-Methode
19.10.2002 07:26:19
Hans W. Herber
Hallo Markus,

wenn der Code mir auch nicht gefällt, an ihm liegt es nicht.
Als Möglichkeit: Wenn die Arbeitsmappe in XL97 erstellt und bei der den Code aufrufenden Schaltfläche die TakeFocusOnClick-Eigenschaft nicht auf False gesetzt wurde, kommt es zu einer Fehlermeldung.

Was den Code anbetrifft, verwende besser:

hans

Re: fehlerhafte protect-Methode
19.10.2002 14:10:19
Krauty
Hallo Hans,

Danke für die Hilfe! Der Code ist unter Excel2000 erstellt und sicher nicht 'optimal', läuft aber unter 2000 problemlos! Und unter Excel97 läuft er auch, wenn ich die Arbeitsblätter nicht schütze. Deshalb hatte ich die "Blattschutzroutine" in Verdacht.
Habe das jetzt wie vorgeschlagen abgeändert, es geht aber noch immer nicht (gleiche Fehlermeldung!).
Probleme bereiten auch nur die ComboBoxen (der Schaltflächencode verändert keine Zellinhalte der ersten 4 Tabellenblätter, sondern liest nur aus).
Sollte ich die ComboBoxen vielleicht entfernen und unter Excel97 neu einfügen?

Gruß,
Markus

Anzeige
Re: fehlerhafte protect-Methode
19.10.2002 14:14:50
Hans W. Herber
Hallo Markus,

bitte konkret: Führt der von mir gepostete Code (ohne etwas hinzuzufügen oder wegzunehmen) zu einer Fehlermeldung?

hans

Re: fehlerhafte protect-Methode
19.10.2002 14:20:34
Hans W. Herber
... die Antwort kannst Du Dir sparen, sie führt selbstverständlich zu keiner Fehlermeldung.
Wo das Problem liegt, kann ich mir vorstellen, kann Dir aber keine Lösung nennen, wenn Du nicht konkret schreibst "der Code stoppt in der Zeile mit folgendem Inhalt ..."


hans

Re: fehlerhafte protect-Methode
19.10.2002 16:07:06
krauty
Hallo Hans,
bitte entschuldige, ich hatte Dich mißverstanden! Also zunächst: es läuft jetzt alles fehlerfrei unter 97 und unter 2000 *freu*
Ich habe Deinen Code in das auto_open eingebunden. Dann brauche ich natürlich nicht jedesmal den Blattschutz entfernen und nach Abarbeitung des Codes wieder schützen!
Allerdings habe ich noch nicht verstanden, warum es jetzt funktioniert bzw. wo vorher der Fehler lag! Vorher stoppte der Code mit der "fehlerhafte protect"-Meldung genau in der Zeile, in der er
"ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True"
ausführen sollte.
Ich als Anfänger behelfe mir häufig mit der Aufzeichnung eines Makros, wenn ich nicht weiterkomme. Offensichtlich ist diese Vorgehensweise doch nicht so gut wie ich dachte...

Gruß,
Markus

Anzeige
Re: fehlerhafte protect-Methode
19.10.2002 16:11:05
Hans W. Herber
Hallo Markus,

ich vermute das Problem ebenso wie Du bei den Steuerelementen. Nehmen wir es als eines der XL-Mysterien ;-)

Was die Code-Aufzeichnung betrifft:
Mein Tipp ist, möglichst freihändig zu programmieren und in den Fällen, in denen man die Schlüsselwörter nicht kennt, den Makrorecorder zur Hilfe zu nehmen. Aus dem aufgezeichneten Code dann absolut alles entfernen, was mit Activate oder Select zu tun hat und hierfür Objektvariablen setzen.

hans

Re: fehlerhafte protect-Methode
19.10.2002 16:35:20
krauty
Hallo Hans,
nochmals vielen Dank für Deine Hilfe!!! Werde versuchen, Deinen Tipp in Zukunft zu berücksichtigen! >:-)

Wünsche ein schönes Wochenende!
Markus

Anzeige
Nachfrage
19.10.2002 18:05:45
PeterW
Hallo Hans,

gibt es dieses XL-Mysterium mit den Steuerelementen in allen Versionen oder lohnt es sich - allein aus diesem Grund - von Version 8 upzudaten?

Gruß
Peter

Re: Nachfrage
19.10.2002 18:28:52
Hans W. Herber
Hallo Peter,

ab XL2000 ist der - uneingestandene - Bug beseitigt. Er tritt auch nicht auf, wenn in XL2000 oder höher programmiert und das Programm versionsniedriger eingesetzt wird.
Grundsätzlich gibt es - bei der Programmierung in XL2000 - zwei Möglichkeiten, den Bug zu umschiffen:
a) CommandButtons: TakeFocusOnClick-Eigenschaft auf False stellen
b) Andere Steuerelemente: An den Anfang des Codes ein unsinnig klingendes ActiveCell.Select setzen.

Fürs UpDaten reicht das Problem m.E. nicht aus.

hans

Anzeige
Re: Nachfrage
19.10.2002 18:33:11
PeterW
Hallo Hans,

Danke für die Antwort. Wenn Du wüßtest wie lange ich schon gesessen habe um die fehlerverursachenden Steuerelemente in Userforms zu finden würdest Du das mit dem Update wahrscheinlich anders sehen. ;)

Gruß und schönes Wochenende
Peter

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige