Autor Thema: Laufzeitfehler 1004 - Wodurch?  (Gelesen 4039 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Ludovico

  • Gast
Laufzeitfehler 1004 - Wodurch?
« am: 2.06.2008 | 09:21 »
Moinsen!

Ich sitze nun seit über einer Woche an einem Problem, bei dem mir das Internet auch nicht weiterhelfen konnte.
Ich habe ein paar Excel-Tabellen programmiert und diese mittels Makro verknüpft (also daß sie via Klick auf Button geöffnet werden).

Bei mir funktioniert alles reibungslos, aber ein Kollege (der die gleichen Zugangsberechtigungen wie ich hat) erhält ständig folgende Meldung:
'Laufzeitfehler 1004
Die Methode 'Open' für das Objekt 'Workbooks' ist fehlgeschlagen'

Wodurch kann das zustande kommen?

BoltWing

  • Gast
Re: Laufzeitfehler 1004 - Wodurch?
« Antwort #1 am: 2.06.2008 | 09:24 »
moin,

ganz blöd, hat er die gleiche Excel-Version wie du? (Programmiere auch recht viel mit Makros in Excel)
Wie schaut es bei noch anderen Kollegen aus?
Passiert das gleiche, wenn du die Syntax/die gleiche Prozedur in eine andere Datei packst? (hab es auch schon gehabt, dass die Datei irgendwie korrupt war)

Ludovico

  • Gast
Re: Laufzeitfehler 1004 - Wodurch?
« Antwort #2 am: 2.06.2008 | 09:45 »
moin,

ganz blöd, hat er die gleiche Excel-Version wie du? (Programmiere auch recht viel mit Makros in Excel)
Wie schaut es bei noch anderen Kollegen aus?
Passiert das gleiche, wenn du die Syntax/die gleiche Prozedur in eine andere Datei packst? (hab es auch schon gehabt, dass die Datei irgendwie korrupt war)

Es ist in der Firma und wir haben alle die gleiche Excel-Version. Ein anderer Kollege kam komischerweise weiter, wobei ich da erst ab halb 2 bescheid geben kann, da ich dann ein Meeting mit dem Mann habe... der hat aber auch einen Fehler gefunden.

Alle Dateien befinden sich übrigens im Intranet, aber jeder der Genannten hat Schreib- und Leseberechtigung.

Edit: Hab mit dem Makro wie erwartet auch beim Weiterkopieren bei mir keine Probleme festgestellt.
« Letzte Änderung: 2.06.2008 | 09:54 von Ludovico »

Plansch-Ente

  • Gast
Re: Laufzeitfehler 1004 - Wodurch?
« Antwort #3 am: 2.06.2008 | 10:10 »
Versuch doch mal die Dateien lokal bei den Leuten zu starten und nicht übers Intranet. Dann kannst du wenigstens schonmal ausschliessen ob es sich um einen Fehler in der Datei oder im Netz handelt.

Ludovico

  • Gast
Re: Laufzeitfehler 1004 - Wodurch?
« Antwort #4 am: 2.06.2008 | 10:11 »
Werd ich machen. Danke!

Ludovico

  • Gast
Re: Laufzeitfehler 1004 - Wodurch?
« Antwort #5 am: 2.06.2008 | 11:38 »
Hallo!
Es liegt nicht am Intranet. Mein Kollege bekam exakt die gleiche Meldung, als er nach Anpassung der Links etc., es auf seinem Rechner auf der Festplatte versucht hat.

Hier sind die beiden Makros, die mir Ärger verursachen (Dateinamen geändert):
Zitat
Sub MonthSelection()
'
' MonthSelection Macro
' Macro recorded 2008-05-22 by Oliver
'

'Open Summary 2008

    Workbooks.Open Filename:="C:\Facility Data\Data Output\Summary 2008.xls"
   

End Sub

und

Zitat
Sub DataEntryGo()
'
' DataEntryGo Macro
' Macro recorded 2008-05-22 by Oliver
'

'Select workbook based on entry in B19

Select Case Range("B19").Text

'If Br is chosen in B19 then open "Draft Br.xls"

Case "Br"
Workbooks.Open Filename:="C:\Facility Data\Data Entry\Draft Br.xls"
   Sheets("Summary").Select
    Range("B1").Select
   
    'If Ch is chosen in B19 then open "Draft Ch.xls"
   
    Case "Ch"
   
    Workbooks.Open Filename:="C:\Facility Data\Data Entry\Draft Ch.xls"
    Sheets("Summary").Select
    Range("B1").Select
   
    'If De is chosen in B19 then open "Draft De.xls"
   
    Case "De"
    Workbooks.Open Filename:="C:\Facility Data\Data Entry\Draft De.xls"
    Sheets("Summary").Select
    Range("B1").Select
   
    'If Fr is chosen in B19 then open "Draft Fr.xls"
   
   Case "Fr"
    Workbooks.Open Filename:="C:\Facility Data\Data Entry\Draft Fr.xls"
    Sheets("Summary").Select
    Range("B1").Select
   
    'If In is chosen in B19 then open "Draft In.xls"
   
   Case "In"
    Workbooks.Open Filename:="C:\Facility Data\Data Entry\Draft In.xls"
    Sheets("Summary").Select
    Range("B1").Select
   
    'If Mx is chosen in B19 then open "Draft Mx.xls"
   
   Case "Mx"
    Workbooks.Open Filename:="C:\Facility Data\Data Entry\Draft Mx.xls"
    Sheets("Summary").Select
    Range("B1").Select
   
   'If nothing is chosen or something not in the list is typed in B19 then go back to B19
   
   Case Else
   Range("B19").Select
    End Select
   
   
End Sub
« Letzte Änderung: 2.06.2008 | 12:01 von Ludovico »

BoltWing

  • Gast
Re: Laufzeitfehler 1004 - Wodurch?
« Antwort #6 am: 2.06.2008 | 12:01 »
also im Programmcode kann ich absolut keinen Fehler entdecken, habe aber auch kurz ein wenig herumgegoogelt.
Jemand hatte ein ähnliches Problem mit einem vergleichsweise ähnl. einfachen Code. Sein Problem war (und nach dessen Änderung war das Problem gelöst) die eingebauten Select/Case-Anweisungen.

Wüsste zwar nicht warum gerade diese das Problem verursachen, aber ... naja...

Programmiere stattdessen doch einfach ein paar IF-Abfragen ein. Ist ja nicht soo der Umstand.

Ludovico

  • Gast
Re: Laufzeitfehler 1004 - Wodurch?
« Antwort #7 am: 2.06.2008 | 12:08 »
@Jan
Danke, aber ich glaube, Case kann nicht der Verursacher sein, denn das erste Makro hat genau das gleiche Problem und da drin befindet sich keine Abfrage (werd es aber dennoch versuchen).

Der Debugger markiert auch direkt immer die Zeile
Zitat
Workbooks.Open Filename:="C:\Facility Data\Data Output\Summary 2008.xls"

Zur Erklärung:
Die Makros befinden sich in einer Arbeitsmappe, die ich als Benutzermaske verwende.
Das erste leitet einen nach Eingabe eines Monats (Auswahl anhand einer Liste) zu einer Arbeitsmappe weiter, die für die Datenausgabe zuständig ist (hier Summary 2008.xls).

Das andere Makro leitet einen nach Eingabe eines Namens (Auswahl anhand einer Liste) weiter zum entsprechenden Eingabeblatt.

Die Weiterleitung wird in beiden Fällen mit einem Button aktiviert.
Und genau hier bekommt mein Kollege immer diesen Laufzeitfehler.

Offline kirilow

  • Dr. Sommer-kirilow
  • Hero
  • *****
  • Wahrheitsaktivist
  • Beiträge: 1.628
  • Geschlecht: Männlich
  • Username: kirilow
Re: Laufzeitfehler 1004 - Wodurch?
« Antwort #8 am: 2.06.2008 | 12:16 »
VBA ist ja nun ein recht merkwürdige Sprache... Hast Du schon einmal den Aufruf etwas variiert?
Ich würde ja ruhig einmal versuchen

Application.Workbooks.open "C:\Facility Data\Data Output\Summary 2008.xls"

u.ä.
VBA ist da oft nicht so vorhersehbar.

Grüße
kirilow


edit:code fixed
« Letzte Änderung: 2.06.2008 | 12:35 von kirilow »
Der Kummerkasten von Dr. Sommer-kirilow ist im rsp-blog Forum. Hier ist sein Postfach voll.

BoltWing

  • Gast
Re: Laufzeitfehler 1004 - Wodurch?
« Antwort #9 am: 2.06.2008 | 12:48 »
Richtig, deshalb die Idee mit den IF-Anweisungen. Theoretisch KANN es dir auch passieren, dass, wenn du den Code einmal gänzlich neu eingeben würdest, das Programm funktionieren könnte.

Offline Thalamus Grondak

  • Mythos
  • ********
  • Beiträge: 9.220
  • Geschlecht: Männlich
  • Username: Thalamus Grondak
Re: Laufzeitfehler 1004 - Wodurch?
« Antwort #10 am: 2.06.2008 | 13:03 »
steht oben in dem Script Option Explicit ? wenn nicht, dann schreibs mal rein und versuchs nochmal.
Even if you win the Rat race, you´re still a Rat

Ludovico

  • Gast
Re: Laufzeitfehler 1004 - Wodurch?
« Antwort #11 am: 2.06.2008 | 14:30 »
Danke für die Tips!
Ich probier es dann erstmal.

Offline Crujach

  • Boobs-Consultant
  • Legend
  • *******
  • Beiträge: 6.793
  • Geschlecht: Männlich
  • Username: Crujach
Re: Laufzeitfehler 1004 - Wodurch?
« Antwort #12 am: 2.06.2008 | 21:23 »
gibt es eine Syntaxhilfe für die Methode Open? es kann ja auch sein, dass Excel ein ganz komisches Pfadformat da erwartet, so was wie file:///C:/Facility Data/Data Output/Summary 2008.xls

...okay, es würde nicht erklären, warum es mal funktioniert und mal nicht.... ich denke auch nicht, dass die Pfadangaben case-sensitiv sind.

Ludovico

  • Gast
Re: Laufzeitfehler 1004 - Wodurch?
« Antwort #13 am: 3.06.2008 | 12:36 »
Hey danke! Läuft nun alles super. Es war wahrscheinlich das fehlende Option Explicit.

Offline Thalamus Grondak

  • Mythos
  • ********
  • Beiträge: 9.220
  • Geschlecht: Männlich
  • Username: Thalamus Grondak
Re: Laufzeitfehler 1004 - Wodurch?
« Antwort #14 am: 3.06.2008 | 21:08 »
Hey danke! Läuft nun alles super. Es war wahrscheinlich das fehlende Option Explicit.
Super.
Wen´s interessiert:
[Klugscheißmodus]Option Explicit sorgt dafür, das Lokale Variablen explizit deklariert werden müssen. Da VB von MS ist, und MS das denken lieber dem Computer überlässt als dem Menschen ist es nämlich standardmäßig so, das der Compiler sich selbst überlegt ob du mit Workbooks jetzt die Globale Variable/Objekt meinst, oder ob er nicht doch lieber eine eigene erzeugen soll.
Die beiden PCs, der auf dem es funzte und der auf dem es nicht funzte, waren hier halt verschiedener Meinung....
[/Klugscheißmodus]
Krank oder? Willkürliche Entscheidungen sind schon ziemlich hohes KI-Level  :ctlu:  ;)
« Letzte Änderung: 3.06.2008 | 21:49 von Thalamus Grondak »
Even if you win the Rat race, you´re still a Rat

Offline Zero

  • Gänseblümchen
  • Famous Hero
  • ******
  • Rating: Awesome
  • Beiträge: 2.387
  • Geschlecht: Männlich
  • Username: Khaoskind
Re: Laufzeitfehler 1004 - Wodurch?
« Antwort #15 am: 3.06.2008 | 21:46 »
*eiskalt den rücken runterläuft* wuah... pfui... *entgeistert gug*


ps sry für OT... aber... pfui...
101010

Ludovico

  • Gast
Re: Laufzeitfehler 1004 - Wodurch?
« Antwort #16 am: 5.06.2008 | 13:55 »
Oh Mist!

Jetzt hab ich den Kram ins intranet gestellt, alle Makros mit Option Explicit versehen und auch die Case durch eine If-Abfrage ersetzt und voilà! Gleicher Fehler!  :-X :'(


Das Makro sieht nun so aus:
Zitat
Option Explicit

Sub DataEntryGo()
'
' DataEntryGo Macro
' Macro recorded 2008-05-22 by Me
'

'Select workbook based on entry in B19

'If BrSA is chosen in B19 then open "Quality Data Br.xls"

If Range("B19").Text = "Br" Then
Application.Workbooks.Open Filename:="http://portal/Quality Data Br.xls"
   Sheets("Start").Select
    Range("B1").Select
   
    'If ChSA is chosen in B19 then open "Quality Data Cn.xls"
   
   ElseIf Range("B19").Text = ("Cn") Then
   
    Application.Workbooks.Open Filename:="http://portal/Quality Data Cn.xls"
    Sheets("Start").Select
    Range("B1").Select
   
    'If DeSA is chosen in B19 then open "Quality Data De.xls"
   
   ElseIf Range("B19").Text = ("De") Then
   
    Application.Workbooks.Open Filename:="http://portal/Quality Data De.xls"
    Sheets("Start").Select
    Range("B1").Select
   
    'If FrSA is chosen in B19 then open "Quality Data Fr.xls"
   
   ElseIf Range("B19").Text = ("Fr") Then
   
    Application.Workbooks.Open Filename:="http://portal/Quality Data Fr.xls"
    Sheets("Start").Select
    Range("B1").Select
   
    'If InSA is chosen in B19 then open "Quality Data In.xls"
   
   ElseIf Range("B19").Text = ("In") Then
   
    Application.Workbooks.Open Filename:="http://portal/Quality Data In.xls"
    Sheets("Start").Select
    Range("B1").Select
   
    'If Mx is chosen in B19 then open "Quality Data Mx.xls"
   
   ElseIf Range("B19").Text = ("Mx") Then
   
    Application.Workbooks.Open Filename:="http://portal/Quality Data Mx.xls"
    Sheets("Start").Select
    Range("B1").Select
   
   'If nothing is chosen or something not in the list is typed in B19 then go back to B19
   
   Else
   Range("B19").Select
    End If
 
End Sub

Ludovico

  • Gast
Re: Laufzeitfehler 1004 - Wodurch?
« Antwort #17 am: 5.06.2008 | 14:39 »
Hat sich erledigt! Der Link hat rumgesponnen.