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

Laufzeitfehler 1004

Laufzeitfehler 1004
01.11.2005 16:46:28
grm
Hi Leuts,
seit ich Office 2003 benutze bekomme ich eine Fehlermeldung "Laufzeitfehler 1004" beim öffnen der Datei, Schuld ist das integrierte Makro.
Meine Frage an Euch, wieso funzt das ganze in früheren Versionen und jetzt nicht mehr, denke Excel ist Abwärtskompatibel, oder?
Hier ist das langsame Makro das nicht mehr funzt:

Private Sub Worksheet_Calculate()
Dim RaBereich As Range, RaZelle As Range
'    Bereich der Wirksamkeit
Set RaBereich = Range("B5:AF45")
'    ActiveSheet.Unprotect
For Each RaZelle In RaBereich
If Not Intersect(RaZelle, RaBereich) Is Nothing Then
Select Case RaZelle.Value
Case "U", "K", "F", "S"
RaZelle.Font.ColorIndex = 3
Case Else
RaZelle.Font.ColorIndex = 1
End Select
End If
Next RaZelle
'    ActiveSheet.protect
Set RaBereich = Nothing
End Sub

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Laufzeitfehler 1004
01.11.2005 17:03:05
Ramses
Hallo
warum nimmst du da ein Makro
 
 D
1A
2K
3B
4F
5S
6C
Bedingte Formatierungen der Tabelle
ZelleNr.: / BedingungFormat
D11. / Formel ist =ODER(D1="U";D1="K";D1="F";D1="S")Abc
D21. / Formel ist =ODER(D2="U";D2="K";D2="F";D2="S")Abc
D31. / Formel ist =ODER(D3="U";D3="K";D3="F";D3="S")Abc
D41. / Formel ist =ODER(D4="U";D4="K";D4="F";D4="S")Abc
D51. / Formel ist =ODER(D5="U";D5="K";D5="F";D5="S")Abc
D61. / Formel ist =ODER(D6="U";D6="K";D6="F";D6="S")Abc
 

Das reicht und ist viel schneller.
Gruss Rainer
Anzeige
AW: Laufzeitfehler 1004
01.11.2005 17:28:38
grm
Hallo Rainer,
ich kann die "Bedingte Formatierung" nicht benutzen, weil die 3 möglichen Bedingungen
sind schon alle für andere Zwecke benutzt, ausserdem macht die "Bedingte Formatierung" bei der ersten zutreffenden Bedingung nicht mehr weiter, und überprüft den Rest nicht mehr.
Gruss johann
AW: Laufzeitfehler 1004
01.11.2005 17:34:35
Ramses
Hallo
"...ausserdem macht die "Bedingte Formatierung" bei der ersten zutreffenden Bedingung nicht mehr weiter, und überprüft den Rest nicht mehr...."
Dann musst du bloss die Bedingungen richtig anordnen.
Welche Zeile wird in deinem Code markiert, wenn du in der Fehlermeldung auf "Debuggen" klickst.
Gruss Rainer
Anzeige
AW: Laufzeitfehler 1004
01.11.2005 17:55:08
grm
Hallo Rainer,
das mir der Reihenfolge funzt nicht, hab ich alles schon ausprobiert!
Komischerweise kommt die Fehlermeldung nur in Office 2003 vor, hier ist die Zeile die das Prob. verursacht.
RaZelle.Font.ColorIndex = 1
Fehlermeldung: Die ColorIndex-Eigenschaft des Font-Objektes kann nicht festgelegt werden.
Gruss johann

AW: Laufzeitfehler 1004
01.11.2005 18:04:38
Ramses
Hallo
"...das mir der Reihenfolge funzt nicht, ..."
Glaub ich nicht,... das wird bei anderen Anforderungen auch so gemacht und funktioniert.
Aber egal.
Ohne die Beispieldatei nicht nachzuvollziehen. Die Anweisung als solches ist korrekt und funktioniert.
kann mir nur vorstellen, dass die Tabelle noch geschützt ist.
Wenn du die Datei hochladen kannst, wäre das hilfreich.
Gruss Rainer
Anzeige
AW: Laufzeitfehler 1004
01.11.2005 19:05:10
grm
Hallo Rainer,
Du hast Recht die Tabellen sind geschützt.
Nochmals zur Reihenfolge der Bedingungen.
1. Bedingung prüft ob die Spalte ein Feiertag ist, wenn "Ja", werden die Zellen eingefärbt und der Eintrag "S,K,F,U" 2.Bedingung "Font einfärben" werden nicht mehr geprüft, die Schrift bleibt Schwarz.
Gruss johann
AW: Laufzeitfehler 1004
01.11.2005 18:07:57
Luschi
Hallo grm,
mit der Festlegung:
Set RaBereich = Range("B5:AF45")
könnte es sein, daß das Objekt "RaBereich" nicht in "ActiveSheet" liegt.
Prüfe mal, ob RaBereich.Parent.Name und ActiveSheet.Name auf den selben Tabellennamen zeigen.
Ich habe mit der o.g. Set - Definition schlechte Erfahrungen gemacht. Zum Range gehört auch die Benennung des Tabellennamens; und beim Öffnen von mehreren Workbooks auch der Workbookname zum Kennzeichnen des Range-Bereiches also;
Set RaBereich = ActiveSheet.Range("B5:AF45") oder
Set RaBereich = ThisWorkbook.Worksheets("yxz").Range("B5:AF45")
Set RaBereich = Workbooks("abx").Worksheets("yxz").Range("B5:AF45").
Da es nur 1 ActiveSheet-Objekt gibt, ist die Benennung des Workbook-Objektes nicht erforderlich.
Wenn ich Dir sage, daß ich in der Münzgasse 7 wohne, dann kann das in Berlin, München, klein-Paris oder sonst wo sein. Zu Range / Cells gehöhrt zumindest die Benennung des Tabellen-Objektes.
Ansonsten kann es gut gehen, aber meistens geht's eben schief.
Dann entschützt Du zwar die aktive Tabelle aber Range meint 1 andere Tabelle.
Zudem ist die Zeile
If Not Intersect(RaZelle, RaBereich) Is Nothing Then
überflüssig, da "RaZelle" immer in "RaBereich" liegt. Dafür sorgt ja die For-Schleife.
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Laufzeitfehler 1004
01.11.2005 18:53:09
grm
Hi Luschi,
ein kleines Stück bin ich weiter gekommen, wenn ich den Blatschutz manuell ausschalte funzts, möchte dies aber nicht bei jedem Eintrag in die Liste machen, vieleicht muss das Makro ein wenig umgestrickt werden das es in Office 2003 funzt. Die Tabelle ist eine Anwesenheitsliste und manche Bereiche müssen auch geschützt bleiben.
Denke das Excel 2003 den Blattschutz nicht entfernt, vieleicht aus Sicherheitsgründen, oder es muss eine Einstellung vorgenommen werden von der ich nichts weiss.
Gruss johann
Wie bitte ... ?
01.11.2005 19:09:09
Ramses
Hallo
"...Denke das Excel 2003 den Blattschutz nicht entfernt, vieleicht aus Sicherheitsgründen,..."
Das ist doch Quatsch.
Die Aufhebung des Blattschutzes ist doch in deinem Code deaktiviert.
Wie soll EXCEL da den Schutz entfernen können.
Gruss Rainer
Anzeige
Alles klar
01.11.2005 19:40:07
grm
Hallo,
ich habs jetzt auch kapiert, Blattschutz entfernen aktiviert, Passwort eingefügt und schon funzt das ganze.
Eine Frage hätte ich noch, kann man das Passwort auch verschlüsselt eingeben?
Gruss johann
AW: Alles klar
01.11.2005 20:01:08
Ramses
Hallo
Nö... das geht nicht.
Das einzige was du machen kannst, ist das VBA_Projekt als solches schützen und mit einem Passwort versehen.
Das reicht zumindest für den Grossteil der Anwender.
Gruss Rainer
AW: Alles klar
01.11.2005 20:15:59
grm
Hallo und vielen Dank,
werde das Makro mit einem Passwort schützen, ein wenig Schutz ist besser als gar keiner!
Gruss und nochmals Danke
Johann
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige