Autor
|
Thema: Rätselhafter Abbruch mit Fehlermeldung (1459 mal gelesen)
|
Gregi Mitglied
Beiträge: 274 Registriert: 26.03.2004 Lenovo Thinkpad W701 Intel Core i7 X920 @ 2.00GHz 4 GB RAM NVIDIA Quadro FX 3800M -------------------------------- SolidWorks Prof. 2016 SP1 Autodesk Building Design Suite Ultimate 2015 Rhinoceros 5.0 -------------------------------- Windows 7 Enterprise SP1
|
erstellt am: 14. Okt. 2009 08:35 <-- editieren / zitieren --> Unities abgeben:
Guten Morgen Zusammen, habe gestern abend vor folgendem Problem gesessen und bin auf keine Lösung gekommen....kurze Beschreibung des Problems: Wir nutzen in unserer Abteilung ein selbstgeschriebenes Excel-Tool, das bis vor ein paar Wochen tadellos lief. Dann wurden alles unsere Rechner neu bespielt und das Tool war die ersten Fehlermeldung raus. Habe dann im VBA-Editor die Verweise kontrolliert und entsprechend wieder angehakt und dachte, das Problem sei damit behoben. War es auch, zumindest bei den allermeisten Rechnern in unserer Abteilung. Aber bei 2 von ca. 60 Rechnern bricht Excel mit der Fehlermeldung "Fehler beim Kompilieren: Projekt oder Bibliothek nicht gefunden" ab bei folgender kleinen Routine
Code: Private Sub Betonfestigkeit_Change() Dim d As String: Dim e As String Dim Ecm As Single Dim fctm As Single d = Betonfestigkeit.Value Select Case d Case Is = "C 20/25" fck = 20: fctm = 2.2: Ecm = 28800 Case Is = "C 25/30" fck = 25: fctm = 2.6: Ecm = 30500 Case Is = "C 30/37" fck = 30: fctm = 2.9: Ecm = 31900 Case Is = "C 35/45" fck = 35: fctm = 3.2: Ecm = 33300 Case Is = "C 40/50" fck = 40: fctm = 3.5: Ecm = 34500 Case Is = "C 45/55" fck = 45: fctm = 3.8: Ecm = 35700 Case Is = "C 50/60" fck = 50: fctm = 4.1: Ecm = 36800 Case Is = "C 55/67" fck = 55: fctm = 4.2: Ecm = 37800 Case Is = "C 60/75" fck = 60: fctm = 4.4: Ecm = 38800 Case Is = "C 70/85" fck = 70: fctm = 4.6: Ecm = 40600 Case Is = "C 80/95" fck = 80: fctm = 4.8: Ecm = 42300 Case Is = "C 90/105" fck = 90: fctm = 5#: Ecm = 43800 Case Is = "C 100/115" fck = 100: fctm = 5.2: Ecm = 45200 End Select Range("fctm").Value = fctm Range("Emodul").Value = Ecm End Sub
Und zwar bleibt vba stehen bei dem ersten Case-Fall und markiert "fck =" Habe dann gestern abend noch herausgefunden, das wenn ich die Variable fck in der Prozedur zunächst definiere als single, das es dann auch auf diesen beiden Rechnern läuft. Alles wunderbar soweit, aber ich möchte gerne noch verstehen, warum es bei fast allen Rechner läuft, nur bei zwei Rechnern stört er sich daran, das die Variable zuvor nicht definiert wurde. Option Explicit ist bei keinem der Rechner aktiviert in unserer Abteilung. Kann mir jemand weiter helfen? Vielen Dank! ------------------ Grüßle Gregi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice
|
erstellt am: 14. Okt. 2009 08:52 <-- editieren / zitieren --> Unities abgeben: Nur für Gregi
|
Gregi Mitglied
Beiträge: 274 Registriert: 26.03.2004
|
erstellt am: 14. Okt. 2009 09:17 <-- editieren / zitieren --> Unities abgeben:
Ob die Rechner exakt identisch sind kann ich jetzt nur annehmen. Die Rechner werden von einer EDV Abteilung bespielt mit Images soweit ich weiß. Hilfreicher wäre, wenn jemand wüßte, nach welchen Unterschieden ich genau suchen müßte. Es scheint ja an den jeweiligen Rechnern zu liegen. Was ich gecheckt habe und was auch bei den Rechner wo es funktioniert und wo es nicht funktioniert gleich ist sind folgende Dinge
- Excel 2003 SP3
- .NET Framework 3.0
Was mir noch aufgefallen war, als ich mich eingeloggt habe auf einem Rechner, wo es nicht lief. Dort kam, als ich das Excel Programm öffnete die Meldung, das nicht genügend Rechte vorhanden seien, um .Net Framework 3.5 zu installieren. Allerdings ist auf allen Rechner bloß die Version 3 installiert und das Tool funkioniert ja bei den meisten Rechnern. ------------------ Grüßle Gregi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
okl Mitglied Wirtsch-Ing (Maschbau)
Beiträge: 157 Registriert: 21.04.2006 3,6 GHz, 2 GB RAM, NVIDIA Quadro FX 1300, Delmia V5R16 SP1, Win XP Prof SP2, Office 2003, VS 2005, VB 6
|
erstellt am: 14. Okt. 2009 09:28 <-- editieren / zitieren --> Unities abgeben: Nur für Gregi
|
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice
|
erstellt am: 14. Okt. 2009 09:35 <-- editieren / zitieren --> Unities abgeben: Nur für Gregi
Zitat: Dann wurden alles unsere Rechner neu bespielt und das Tool war die ersten Fehlermeldung raus.
Nun ja - darin versteckt sich doch ein Teil der Lösung?! Fehlersuche - solange hier keine anderen Tipps aufschlagen ;-) - auf diese Weise: Wenn es auf der Mehrzahl der Rechner läuft, und auf zweien nicht - worin unterscheiden sich diese beiden von der Mehrzahl? Das müsste doch relativ leicht herauszufinden sein. Eure EDV-Abteilung protokolliert doch sicher, was sie tut ? @Hinweis von okl: Wurde vielleicht der benannte Bereich (in xls) versehentlich gelöscht? ------------------ DIN1055.de | Lastannahmen für Anwender NEU: Foren zu DIN 1055 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Gregi Mitglied
Beiträge: 274 Registriert: 26.03.2004
|
erstellt am: 14. Okt. 2009 10:33 <-- editieren / zitieren --> Unities abgeben:
@okl: fck ist gar nicht definiert. VBA sollte daraus also eine Variant machen. Aber genau das ist ja das komische. Die Mehrheit der Rechner stört sich daran nicht. Wenn ich die Variable definiere, dann funktioniert es auch bei den beiden Rechnern, bei denen es bislang nicht ging??? ------------------ Grüßle Gregi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice
|
erstellt am: 14. Okt. 2009 10:50 <-- editieren / zitieren --> Unities abgeben: Nur für Gregi
|
Gregi Mitglied
Beiträge: 274 Registriert: 26.03.2004
|
erstellt am: 14. Okt. 2009 11:07 <-- editieren / zitieren --> Unities abgeben:
Bin auch ein Fan von "Option Explicit". Habe das Tool auch nicht selber geschrieben. Darf jetzt halt auf Problemlösung gehen. Habe auch kein Problem, die Variable zu definieren in der Prozedur, damit es auf allen Rechnern läuft. Aber ich würde gerne verstehen, warum aus diesem Grunde es auf manchen Rechnern läuft und auf manchen nicht. Wir haben viele Tools und scheinbar treten hier und dort immer mal wieder Probleme auf seid der Systemumstellung. Ich erhoffe mir, wenn ich dieses Problem verstanden habe, das ich das in Zukunft öfter verwenden kann. In den Optionen habe ich eingestellt, das Variablendeklaration nicht erforderlich ist. Aber ich denke eh, das wenn dieses Häkchen gesetzt ist, dann schreibt VBA halt "Option Explicit" automatisch hin, und wenn kein Haken gesetzt ist, dann eben nicht. Das hat doch sonst keinen weiteren Einfluß oder? ------------------ Grüßle Gregi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice
|
erstellt am: 14. Okt. 2009 11:36 <-- editieren / zitieren --> Unities abgeben: Nur für Gregi
Deine Motivation, der Sache auf den Grund zu gehen, ist lobenswert. Zum Einfluß des Häkchens: Siehst Du schon richtig. Wenn Haken da, dann Option Explicit, dann muss irgendwo zu Beginn das Dim fck... stehen - sonst nicht. Insofern - ich tappe im Dunkeln - könnte es sein, dass auf den beiden Rechnern, die den Fehler melden, der Haken gesetzt ist, warum auch immer. Dann bleibt VBA gar keine andere Wahl, als zu meckern. Ist der Haken auf allen Kisten gleich? Am Wortlaut der Fehlermeldung bin ich nach wie vor interessiert, sonst bleibt es wohl beim Ratespiel. ------------------ DIN1055.de | Lastannahmen für Anwender NEU: Foren zu DIN 1055 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Gregi Mitglied
Beiträge: 274 Registriert: 26.03.2004
|
erstellt am: 14. Okt. 2009 11:45 <-- editieren / zitieren --> Unities abgeben:
Entschuldigung das ich nicht darauf geantwortet habe, aber die Fehlermeldung hatte ich in meiner ersten Meldung zu diesem Thema bereits geschrieben. Sie lautet: "Fehler beim Kompilieren: Projekt oder Bibliothek nicht gefunden" ------------------ Grüßle Gregi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Nepumuk Mitglied Entwicklungsleiter
Beiträge: 351 Registriert: 16.10.2004
|
erstellt am: 14. Okt. 2009 14:17 <-- editieren / zitieren --> Unities abgeben: Nur für Gregi
Hallo, dann öffne die Mappe mal und schau mal im VBA-Editor - Menüleiste - Extras - Verweise. Da sollte mindestens einer drin sein bei dem steht "Nicht vorhanden" (oder so ähnlich). Nimm da mal das Häkchen raus. In der Mappe ist ein Verweis auf eine Bibliothek drin, die auf den beiden Rechnern nicht vorhanden ist. ------------------ Gruß Nepumuk Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Gregi Mitglied
Beiträge: 274 Registriert: 26.03.2004 Lenovo Thinkpad W701 Intel Core i7 X920 @ 2.00GHz 4 GB RAM NVIDIA Quadro FX 3800M -------------------------------- SolidWorks Prof. 2016 SP1 Autodesk Building Design Suite Ultimate 2015 Rhinoceros 5.0 -------------------------------- Windows 7 Enterprise SP1
|
erstellt am: 15. Okt. 2009 09:03 <-- editieren / zitieren --> Unities abgeben:
Hallo Nepumuk, in der Tat, daran liegt es. Bei den Rechnern, wo es nicht funktionierte, war ein Programm nicht installiert, welches für vba eine Bibliothek zur Verfügung gestellt hat. Dementsprechend stand dann dort bei diesen beiden Rechnern "Nicht vorhanden". Vielen Dank also für den Hinweis! Wäre selber wohl kaum drauf gekommen, weil diese Bibliothek aber auch überhaupt nix mit dem Tool zu tun hat. Gibt es da eine sinnvolle Erklärung dafür, warum vba trotzdem mit Fehler abbricht? ------------------ Grüßle Gregi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Nepumuk Mitglied Entwicklungsleiter
Beiträge: 351 Registriert: 16.10.2004
|
erstellt am: 15. Okt. 2009 09:46 <-- editieren / zitieren --> Unities abgeben: Nur für Gregi
Hallo Gregi, was da intern genau passiert kann ich dir nicht sagen. Aber solch rätselhafte Fehlermeldungen kommen immer bei fehlenden Verweisen. Da werden dann plötzlich Funktionen angemeckert die mit dem Verweis garnichts zu tun haben. ------------------ Gruß Nepumuk Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |