Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Objektvariable oder With-Blockvariable n. festg.

Objektvariable oder With-Blockvariable n. festg.
28.04.2014 10:59:56
Peter
Guten Tag
Beim Aufstarten einer Datei (direkt als Mailattachment) erhalte ich folgenden Fehler:
"Laufzeitfehler '91': Objektvariable oder With-Blockvariable nicht festgelegt.
Wenn ich in den Debugger gehe, ist die vierte Zeile meines Codes gelb markiert. Was ist mit der Zeile Set oSelSh = ActiveWindow.SelectedSheets nicht gut?
Gruss, Peter
Sub ATabellenschutz_deaktivieren_alle()
Dim WS As Worksheet, oSelSh As Object
Application.ScreenUpdating = False
Set oSelSh = ActiveWindow.SelectedSheets
oSelSh(1).Select   'oder ActiveSheet.Select
For Each WS In ThisWorkbook.Worksheets
WS.Unprotect "ABC"
Next
oSelSh.Select
Application.ScreenUpdating = True
End Sub

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

Betreff
Datum
Anwender
Anzeige
AW: Objektvariable oder With-Blockvariable n. festg.
28.04.2014 11:02:42
Hajo_Zi
Warum(1)?
oSelSh(1).Select 'oder ActiveSheet.Select
Select, Activate usw. ist in VBA zu 99,9% nicht notwendig.
Der Cursor ist kein Hund der überall rumgeführt werden muss.
Hinweise zu select usw. Hajo-Excel.de
Hinweise zu select usw. Online-Excel.de

Anzeige
AW: Objektvariable oder With-Blockvariable n. festg.
28.04.2014 11:05:25
Peter
Hallo Hajo
oSelSh(1), weil in diesem File eine Mehrfachselektion von Tabellen eine gewisse Wahrscheinlichkeit entsteht. Doch das war nicht die Frage. Das Problem muss ja eine Zeile früher liegen.
Gruss, Peter

AW: Objektvariable oder With-Blockvariable n. festg.
28.04.2014 11:08:10
Hajo_Zi
lösche alle Zeilen mit oSelSh
meinen Beitrag hast Du wohl nicht komplett gelesen.
Gruß Hajo

AW: Objektvariable oder With-Blockvariable n. festg.
28.04.2014 11:10:09
Peter
Hallo Hajo
Wenn eine Mehrfachselektion von Tabellen vorliegt, muss ich temporär nur eine anwählen, damit ich auf allen Tabellen das Passwort setzen kann. Sonst produziert die Mehrfachselektion einen Fehler.
Gruss, Peter

Anzeige
AW: Objektvariable oder With-Blockvariable n. festg.
28.04.2014 11:08:08
Peter
Hallo Hajo
oSelSh(1), weil in diesem File eine nicht unsignifikante Wahrscheinlichkeit besteht, dass eine Mehrfachselektion von Tabellen vorliegt. Doch das war nicht die Frage. Das Problem muss ja eine Zeile früher liegen.
Gruss, Peter

AW: Objektvariable oder With-Blockvariable n. festg.
28.04.2014 11:02:51
Hajo_Zi
Warum(1)?
oSelSh(1).Select 'oder ActiveSheet.Select
Select, Activate usw. ist in VBA zu 99,9% nicht notwendig.
Der Cursor ist kein Hund der überall rumgeführt werden muss.
Hinweise zu select usw. Hajo-Excel.de
Hinweise zu select usw. Online-Excel.de

Anzeige
bei mir kommt kein Fehler
28.04.2014 11:30:03
Matthias
Hallo
Habs getestet, aber nur in XL2007
Ich konnte "protect(en)" und "unprotect(en)"
auch bei MehrfachSelection.
Der Code lief bei mir immer durch
Mehr kann ich da leider nicht für Dich tun.
Gruß Matthias

AW: Objektvariable oder With-Blockvariable n. festg.
28.04.2014 11:48:03
EtoPHG
Hallo Peter & und hallo Matthias & Hajo,
Dieses Codekonstrukt basiert auf einem Vorschlag von mir. Dazu ist zu sagen:
Sind mehrere Blätter selektiert, kann ab XL2010 kein .Protect von Blättern in einer For-Each Schlaufe vorgenommen werden. der .Unprotect hingegen funktioniert. Darum das temporäre .Select des ersten Blatts in der Mehrfachselektion und später der das Zurücksetzen der Mehrfach-Selektion. Der Vorschlag Hajo's "alles Löschen mit oSelSh" ist also ziemlich kontraproduktiv (und nebenbei: seine Unterstellung "Nicht alles gelesen" zu haben, könnte man ihm genausogut machen ;-).
Peter: Was mich stutzig macht ist dein Zitat:...Aufstarten einer Datei (direkt als Mailattachment)...
Was genau meinst du damit? Läuft da wirklich eine eigen- und vollständige XL-Instanz, oder ggf. nur ein XL-Viewer?
Gruess Hansueli

Anzeige
AW: Objektvariable oder With-Blockvariable n. festg.
28.04.2014 12:11:13
Peter
Hallo Hansueli
Danke für deine Antwort.
Mein Zitat meint, dass ich die Datei mir per Mail sende und diese dann aus dem Mail (ohne zuerst zu speichern) wieder öffne. Das ist meiner Meinung nach eine vollständige XL-Instanz. Nach dem Öffnen kann ich dann problemlos mit "Speichern unter" die Datei an einem beliebigen Ort speichern.
In der Zwischenzeit habe ich jedoch festgestellt, dass das Problem wohl anderweitig verursacht wurde.
Ich habe mir in einer ausgeblendeten Tabelle (verryhidden) in einer Zelle ein Passwort hinterlegt und dies wurde im Laufe des Codes abgefragt mit
strpasswort = Sheets("_P").Range("C100")
Seit ich diese Zeile geändert habe auf
strpasswort = ThisWorkbook.Worksheets("_P").Range("C100")
läuft der Code problemlos durch, auch wenn ich die Datei aus dem Mail heraus aufstarte.
Somit scheint also das Problem gelöst.
Danke an alle, die sich mit meinem Problem beschschäftigt haben und für alle Hinweise.
Gruss, Peter
Anzeige

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige