Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1228to1232
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
Inhaltsverzeichnis

Laufzeitfehler 1004 bei Office2010

Laufzeitfehler 1004 bei Office2010
Nora
Hallo zusammen,
irgendwie werde ich nicht fündig im Internet.
Ich habe ein Dokument, welches ich mit einem Blattschutz versehen habe ausser ein paar spezielle Zellen, die gefüllt werden müssen.
Als ich noch Office 2003 habe, mit dem ich das auch erstellt habe, funktionierte alles.
Nun habe ich Office 2010 und auf einmal kommt der Laufzeitfehler 1004 Anwendungs- oder objektorientierter Fehler.

Private Sub Worksheet_change(ByVal Target As Range)
If Not Intersect(Target, Range("D108:F108")) Is Nothing Then
Call downPM1("1")
End if
End Sub
Sub downPM1(Text)
Dim i As Integer, j As Integer
Dim MTBx As Double, MTTx As Double
Dim replace As String, replType As String, replEQ As String, downName As String
Dim numberDowns As Double, numberReplDowns As Double
Dim downtime As Double
j = Text
'alle Variablen holen
replace = Cells(108, 4)
replType = Cells(108, 5)
replEQ = Cells(108, 6)
downName = Cells(102, 4)
'das eigentliche Event berechnen
If (IsEmpty(Cells(105, 4)) = True And IsEmpty(Cells(106, 4)) = True) Then
Worksheets("Performance").Cells(109, 6) = ""
Cells(107, 4) = ""
Else
MTBx = Cells(103, 4)
MTTx = Cells(105, 4) + Cells(106, 4)
Cells(107, 4) = MTTx
If replace = "no" Then
Cells(109, 6) = MTTx / (MTTx + MTBx)
Cells(108, 6).Interior.ColorIndex = 4
Cells(108, 5).Font.ColorIndex = 4
Cells(108, 6).Font.ColorIndex = 4
'Cells(108, 5) = ""
'Cells(108, 6) = ""
End If
Bei der Fettgrdurkcten Zeile werde ich hinverwiesen.
Wenn ich den Blattschutz aufhebe, funktioniert alles.
Aber wenn ich den Blattschutz drin habe, der nicht die oben genannte Zelle betrifft funktioniert es nicht.
Den Blattschutz habe ich so ausgeführt, dass in den nicht zu schützenden Zelle kein Häclchen bei "gesperrt" und "ausgeblendet" ist und dann beim "Blatt Schützen" ich nur "Nicht gesperrte Zellen auswählen" markiert habe.
Verwunderlich ist, dass es vorher funktionierte.
Über Unterstützung würde ich mich sehr freuen.
Lieben gruss
Nora

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Laufzeitfehler 1004 bei Office2010
23.09.2011 11:58:32
Luschi
Hallo Nora,
bei mir kommt der Fewhler auch schon Excel 2003 und ff.
Wenn Du per Vba den Blattschutz setzt, dann achte auf folgende Einstellung:
UserInterfaceOnly:= True
Aus der Excel 2003 & 2010 -Hilfe:
Optionaler Variant-Wert. Wenn True, wird die Benutzeroberfläche, jedoch keine Makros geschützt. Ohne Angabe dieses Arguments gilt der Schutz für Makros und die Benutzeroberfläche.
Gruß von Luschi
aus klein-Paris
PS: Damit kann der Anwender die Zelle nicht formatieren, Vba kann hier mit der Zelle tun und lassen was Excel so hergibt!
AW: UserInterfaceOnly ist nicht so optimal
23.09.2011 12:09:08
Daniel
Hi
besser als UserInterface:=True ist, den Blattschutz im Makro selbst mit ActiveSheet.UnProtect Passwort:="xxx" aufzuheben und anschließend wieder mit ActiveSheet.Protect Passwort:="xxx" zu aktivieren.
Das funktioniert zuverlässiger, weil die Eigenschaft UserInterface:=True nur von einem Makro, nicht aber von einem Anwender vergeben werden kann.
Das Passwort sollte ja bekannt sein.
Gruß, Daniel
Anzeige
AW: UserInterfaceOnly ist nicht so optimal
23.09.2011 12:38:16
Martin
Hallo,
wenn nur von Makros Änderungen vorgenommen werden dürfen, finde ich UserInterface:=True die optimale Lösung. Allerdings geht beim beim Schließen der Arbeitsmappe die Zugriffsberechtigung auch für Makros verloren. Wird die Arbeitsmappe also geschlossen und wieder neu gestartet, ist die Eigenschaft UserInterface:=False. Darum sollte die Berechtigung für Makros UserInterface:=True im Autostart-Makro Workbook_Open() neu gesetzt werden.
Viele Grüße
Martin
AW: UserInterfaceOnly ist nicht so optimal
23.09.2011 14:39:18
Luschi
Hallo Martin , Daniel,
wenn wir schon von der selben Option reden, dann heißt sie 'UserInterfaceOnly:=True' und nicht 'UserInterface:=True'.
Das dieser interne Blattschutz beim Schließen der Arbeitsmappe verloren geht und die Tabelle dann total geschützt ist, kann man ja im 'Autostart-Makro Workbook_Open()' wieder einstellen; wie von Martin erwähnt..
Den Blattschutz total aufzubeben, seine Makrobefehle absetzen und den Blattschutz wieder 'total' setzen, kann man in ereignisgesteuerten (neudeutsch: 'objektorientierte Programmierung') so garnicht so steuern, wie man es sich denkt.
Wer weiß schon genau, wann welches Ereignis von welchen Steuerelement in welcher Reihenfolge stattfindet.
Es wäre fatal, daß im plötzlich eintretenden Fehlerfall, der Blattschutz total aufgehoben is, Meine Vba-Befehle den Error-Fall 'errzeugen' und der User dann machen kann was er will.
Per Vba bin ich als Programmierer selbst verantwortlich und da kommt mit solche Prämisse sehr gelegen, saß ich per Vba-Code etws tun kann - was dem User per Excel-Oberfläche nicht möglich ist.
Warum in Excel 2003 dieser Fehler nicht auftrat, ist mit allerdings schleierhaft, ... fehlende Service Pack's, HotFixes, blablabla...
Gruß von Luschi
aus klein-Paris
Anzeige
AW: UserInterfaceOnly ist nicht so optimal
23.09.2011 15:48:28
Nora
Hallo Luschi, Martin und Daniel,
vielen Dank für die Beiträge.
Habe jetzt mit "UserInterfaceOnly:= true" probiert und alles klappt prima.
Jetzt gibt es nur noch ein kleines Problemchen aber das bekomme ich auch so hin, nach den guten genannten Erklärungen von Euch.
Warum es aber vorher funzte und jetzt nicht mir, ist auch mir schleierhaft...ich hoffe dass tritt nicht wieder auf, wenn ein anderer das Dokument mit einem anderen Version öffnet.
Also vielen Dank
und ein schönes Wochenende
Nora
AW: UserInterfaceOnly ist nicht so optimal
28.09.2011 18:53:49
vellonnion
Hallo Forum!
Ich scheine das selbe Problem wie Nora zu haben, kommt aber leider mit euren Erläuterungen noch nicht ganz klar. Wenn ich UserInterfaceOnly:=True in Workbook_Open schreibe, bekomme ich als erstes eine Fehlermeldung (Fehler beim Kompilieren. Erwartet: Ausdruck). Insofern habe ich versucht, den Doppelpunkt wegzunehmen, aber dann kann der Quelltext nicht kompliliert werden, weil die Variable UserInterfaceOnly nicht definiert ist.
Eine Hilfe zu UserInterfaceOnly gibt es bei mir leider auch nicht.
Wo (und wie genau) muss denn dieses UserInterfaceOnly genau hin? Als Parameter beim Blattschutz setzen irgendwo (und zusätzlich noch bei Workbook_Open?).
Hat es vielleicht vor einigen Tagen irgendein Excel- oder VBA-Update gegeben? Denn meine sämtlichen VBA-Dateien verhalten sich seltsam. Unter anderem scheint aus irgendeinem Grund auf einmal endlich der Befehl Option Explicit zu funktionieren (der hatte bisher keinerlei Wirkung, seit einigen Tagen gibt es eine Fehlermeldung, wenn ich vergesse, eine Variable zu deklarieren).
Schon mal danke für jedwede Hilfe!
Viele Grüße
vellonnion
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige