| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Probleme mit Excel (3348 mal gelesen)
|
Ulr1ch Mitglied Konstrukteur
Beiträge: 75 Registriert: 18.12.2003 IV9 Windows XPpro Pentium 4 2,4GHz 1,5GB RAM
|
erstellt am: 18. Dez. 2003 14:34 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich habe ein Problem mit dem Starten von Excel mit hilfe von VBA. Mit folgendem Code möchte ich Excel starten (Hab ich größtenteils aus dem Forum):
Code:
'********************************** Excel öffnen ******************* Dim objExcel As Excel.Application Dim objWorkbook As Workbook Dim objWorksheet As WorkSheet '************************************************************ On Error Resume Next Set objExcel = GetObject(, "Excel.Application") If Err.Number Then Err.Clear On Error Resume Next Set objExcel = CreateObject("Excel.Application") If Err.Number Then Err.Clear MsgBox "Kann Excel nicht öffnen." End If End If objExcel.Run objExcel.Workbooks.Open ("H:\Konstruktion-M\Vorlagen\Stücklisten\Stücklistenvorlage_Mech.xls") Set objWorkbook = objExcel.ActiveWorkbook
Leider funktioniert das auf meinem Rechner nicht. Excel wird nicht komplett ausgeführt. Es erscheint ein unvollständiges Excel-Window. Auf einem anderen Rechner funktioniert's. Weiß jemand Rat? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
PaulSchuepbach Moderator Programmierer
Beiträge: 1005 Registriert: 01.10.2003
|
erstellt am: 18. Dez. 2003 14:41 <-- editieren / zitieren --> Unities abgeben: Nur für Ulr1ch
Hallo Ulrich, ich denke, das Problem ist Excel selber: wenn Du Excel mittels vba gestartet hast, geh mal in Excel auf 'Ansicht' - 'Ganzer Bildschirm' und danach 'Ganzer Bildschirm' wieder ausschalten. Noch was solltest Du kontrollieren: wenn Dir Inventor oder Excel mal waehrend des testens abgeschmiert ist (soll ja mal vorkommen...) dann bleibt uU. das Excel-Objekt am Leben. Du solltest in so einem Fall Excel und ev. Inventor im Taskmanager abschiessen - wenn das Excel-Objekt noch da ist, kann's auch zu solchen Effekten kommen. Gruesse,
Paul www.morecam.ch/cad.htm Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ulr1ch Mitglied Konstrukteur
Beiträge: 75 Registriert: 18.12.2003 IV9 Windows XPpro Pentium 4 2,4GHz 1,5GB RAM
|
erstellt am: 18. Dez. 2003 16:04 <-- editieren / zitieren --> Unities abgeben:
|
lbcad Ehrenmitglied V.I.P. h.c. Dipl.-Ing. Maschinenbau und CAD-Trainer
Beiträge: 3794 Registriert: 15.02.2001
|
erstellt am: 09. Apr. 2004 11:37 <-- editieren / zitieren --> Unities abgeben: Nur für Ulr1ch
Hallo Ulr1ch, wenn es noch aktuell sein sollte: Sub Datei_mit_Excel_oeffnen(Optional Pfad As String, Optional Dateiname As String) '********************************** Excel öffnen ******************* Dim objExcel As Excel.Application Dim objWorkbook As Workbook Dim objWorksheet As WorkSheet '************************************************************ On Error Resume Next Set objExcel = GetObject(, "Excel.Application") If Err.Number Then ' Excel läuft noch nicht - starten Err.Clear On Error Resume Next Set objExcel = CreateObject("Excel.Application") objExcel.Visible = True If Err.Number Then Err.Clear MsgBox "Kann Excel nicht öffnen." End If End If objExcel.Run objExcel.Workbooks.Open (Pfad + Dateiname) Set objWorkbook = objExcel.ActiveWorkbook End Sub
---------------------------------------- jetzt sollte es immer laufen!
------------------ Gruß Lothar Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
hudln Mitglied Konstrukteur
Beiträge: 130 Registriert: 05.10.2007 Inventor 2008 SP2<P>Fujitsu Siemens Workstation Intel Core 2 6300 (1.86 Ghz) Nvidia Quadro FX 1500 4gb DDR Ram Win XP Pro
|
erstellt am: 07. Feb. 2008 16:38 <-- editieren / zitieren --> Unities abgeben: Nur für Ulr1ch
Würde auch gerne den code verwenden, jedoch funktioniert er bei mir nie... bei mir kommt immmer der fehler wie im anhang zu sehen. Habe den Tipp von Paul auch schon versucht, ändert nichts. Eine Ahnung was ich falsch mache? ------------------ MfG Rudi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
daywa1k3r Moderator Softwareentwickler
Beiträge: 3497 Registriert: 01.08.2002 Alienware m17x, Win7, Inventor2012
|
erstellt am: 07. Feb. 2008 16:42 <-- editieren / zitieren --> Unities abgeben: Nur für Ulr1ch
|
hudln Mitglied Konstrukteur
Beiträge: 130 Registriert: 05.10.2007 Inventor 2008 SP2<P>Fujitsu Siemens Workstation Intel Core 2 6300 (1.86 Ghz) Nvidia Quadro FX 1500 4gb DDR Ram Win XP Pro
|
erstellt am: 07. Feb. 2008 16:48 <-- editieren / zitieren --> Unities abgeben: Nur für Ulr1ch
|
Buskonne Mitglied Bald-Nicht-Mehr Student
Beiträge: 4 Registriert: 15.02.2008 Inventor 2008 User
|
erstellt am: 22. Feb. 2008 08:34 <-- editieren / zitieren --> Unities abgeben: Nur für Ulr1ch
Hi Leute, ich bin neu hier, daher eine kurze vorstellung von meiner seite: mein nic resultiert aus meiner vorliebe für VW busse aller generationen (darf stolz einen wunderschönen 71er und einen, natürlich ebenso schönen, 96er, jeweils 9-sitzer, mein eigen nennen) und meinem namen (Konrad). ich bin (noch) maschbau-student und versuche seid 2 jahren mein diplom irgendwie zu schreiben (arbeit ging bislang vor). jetzt habe ich mir einfach mal die zeit genommen und damit begonnen. wir (besser eigentlich ich, ich bin der einzige konstrukteur) hier im unternehmen arbeiten mit inventor 2008 (hoffentlich bald 2009) und natürlich hat auch meine diplomarbeit (DA) damit zu tun. ich komme aus einem unternehmen, was kaltfließpressteile herstellt, von daher habe ich viel mit der erstellung von stufenfolgen für selbiges verfahren zu tun. meine DA soll zum ziel haben, dieses sehr zu vereinfachen, allerdings soll mir das CAD-system keine stufenfolgen an sich kreiren, sondern nur den aufwand erheblich reduzieren. damit verbunden sind natürlich einige automatismen, welche ich selbst als makro schreiben möchte (darf/muss, das soll eben meine DA werden). da ich natürlich wie gesagt maschbauer bin, habe ich nicht wirklich viel ahnung von VBA. da arbeite ich mich aber gerade ein und bin mit hilfe dieses forums (vielen dank dafür) und diversen hilfe-funktionen (google ist da auch nicht zu verachten) auch schon ein stück voran gekommen. ich werde also in naher zukunft ab und an mal eine "dumme" frage stellen, sorry schon mal dafür. die unities vergeben muss ich noch lernen, aber das bekomme ich auch noch hin. so, nun aber zum thema: ich möchte auch aus dem inventor heraus excel starten, nur habe ich selbes problem wie rudi. die hilfe von igor hilft mir, als VBA-dummie, leider nicht weiter. IV- als auch IV-API-hilfe, wie auch die online-suche (hier im forum und global im netz) konnten mir leider auch nicht weiterhelfen. @igor: könntest du das ganze bitte etwas präzisieren? wie gesagt, bin absoulter neuling, sorry. wie kann ich diesen verweis hinzufügen? möchte gar keinen fertigen code haben (den möchte ich mir selber erstellen), ein kleiner hinweis nach was ich suchen müßte würde mir schon sehr weiterhelfen. vielen dank schon mal. Gruß, Buskonne! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
daywa1k3r Moderator Softwareentwickler
Beiträge: 3497 Registriert: 01.08.2002 Alienware m17x, Win7, Inventor2012
|
erstellt am: 22. Feb. 2008 08:44 <-- editieren / zitieren --> Unities abgeben: Nur für Ulr1ch
Hallo Buskonne (und willkommen), Inventor öffnen -> ALT+F11 drücken um den VBA Editor zu öffnen. Da bist du dann schon in der VBA Umgebung, und kannst die ersten Funktionen schreiben / testen. Ein Verweis kannst du hinzufügen indem du auf Menü Extras -> Verweise klickst. In der Liste selektierst du die Verweise die du hinzufügen möchtest (Microsoft Excel 11.0 Object Library) und bestätigst du mit OK. Nun kannst du die hinzugefügten Verweise in deinen Makros benutzen. ------------------ Grüße Igor
FX64 Software Solutions Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Buskonne Mitglied Bald-Nicht-Mehr Student
Beiträge: 4 Registriert: 15.02.2008 Inventor 2008 User
|
erstellt am: 26. Feb. 2008 08:15 <-- editieren / zitieren --> Unities abgeben: Nur für Ulr1ch
hallo igor, vielen dank für deine schnelle hilfe! wieder was dazu gelernt. bin leider erst jetzt dazu gekommen, das ganze zu testen und... es funktioniert!! jetzt kann ich munter weiter machen. danke nochmal. Gruß, Buskonne! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Stefan.Geissler Mitglied Student
Beiträge: 13 Registriert: 22.04.2008
|
erstellt am: 05. Mai. 2008 10:54 <-- editieren / zitieren --> Unities abgeben: Nur für Ulr1ch
Hallo, bin auch neu hier im Forum, Maschinenbausudent und schreibe derzeit meine Masterarbeit und setze mich mit Inventor Prof. '08 und VBA auseinander. Leider setzt sich bei mir das Excelproblem mit dem "Objekterstellung durch ActivX-Komponenten nicht möglich Laufzeitfehler '429' " fort. Habe den oben stehenden Code verwendet um eine ExcelDatei zu öffnen und nun kommt dieser Fehler. Habe auch schon in den Verweis zum DAO036.dll gesetzt, aber das hat nichts geholfen. Grüße, Stefan Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
daywa1k3r Moderator Softwareentwickler
Beiträge: 3497 Registriert: 01.08.2002 Alienware m17x, Win7, Inventor2012
|
erstellt am: 05. Mai. 2008 11:00 <-- editieren / zitieren --> Unities abgeben: Nur für Ulr1ch
|
Stefan.Geissler Mitglied Student
Beiträge: 13 Registriert: 22.04.2008
|
erstellt am: 05. Mai. 2008 11:05 <-- editieren / zitieren --> Unities abgeben: Nur für Ulr1ch
|
daywa1k3r Moderator Softwareentwickler
Beiträge: 3497 Registriert: 01.08.2002 Alienware m17x, Win7, Inventor2012
|
erstellt am: 05. Mai. 2008 11:10 <-- editieren / zitieren --> Unities abgeben: Nur für Ulr1ch
|
Stefan.Geissler Mitglied Student
Beiträge: 13 Registriert: 22.04.2008
|
erstellt am: 05. Mai. 2008 11:21 <-- editieren / zitieren --> Unities abgeben: Nur für Ulr1ch
Code: Dim objExcel As Excel.Application Dim objWorkbook As Workbook Dim objWorksheet As WorkSheet On Error Resume Next Set objExcel = GetObject(, "Excel.Application") If Err.Number Then Err.Clear On Error Resume Next Set objExcel = CreateObject("Excel.Application") If Err.Number Then Err.Clear MsgBox "Kann Excel nicht öffnen." End If End If objExcel.Run objExcel.Workbooks.Open ("D:\Masterarbeit\Layout\Palettenabm.xls") Set objWorkbook = objExcel.ActiveWorkbook
wie gesagt ist ja der gleiche Code wie oben, nun bekomm ich in der Zeile: Set objExcel = GetObject(, "Excel.Application") die Fehlermeldung
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
daywa1k3r Moderator Softwareentwickler
Beiträge: 3497 Registriert: 01.08.2002 Alienware m17x, Win7, Inventor2012
|
erstellt am: 05. Mai. 2008 11:31 <-- editieren / zitieren --> Unities abgeben: Nur für Ulr1ch
Das ist ja auch normal, sofern Excel nicht läuft. Aber diese Ausnahme ist ja mit On Error Resume Next abgefangen. Anschließend soll das Makro versuchen Excel zu starten (da keine laufende Excel Instanz gefunden wurde). Daher finde ich das ein wenig merkwürdig dass du da eine Fehlermeldung bekommst (was eigentlich wegen On Error Resume Next gar nicht sein dürfte). ------------------ Grüße Igor FX64 Software Solutions Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Stefan.Geissler Mitglied Student
Beiträge: 13 Registriert: 22.04.2008
|
erstellt am: 06. Mai. 2008 09:38 <-- editieren / zitieren --> Unities abgeben: Nur für Ulr1ch
Hallo nochmal, also mit dem Code ist alles richtig und auch die Verweise stimmen, es liegt irgendwie an meinem PC, denn auf'm Laptop funktioniert es. Wenn ich die Ursache finde schreib ich die mal noch rein. Danke trotzdem für die Hilfe! Grüße! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ulr1ch Mitglied Konstrukteur
Beiträge: 75 Registriert: 18.12.2003 IV9 Windows XPpro Pentium 4 2,4GHz 1,5GB RAM
|
erstellt am: 11. Mai. 2009 09:35 <-- editieren / zitieren --> Unities abgeben:
Hallo Kollegen, dank Euerer Hilfe habe ich vor einigen Jahren ein Makro geschrieben, mit dessen Hilfe ich Inventor Stücklisten in Excel exportiert habe. Das hat nun auch lange Zeit geklappt. Inzwischen Arbeiten wir mit AIS 2009 SP2 und Microsoft Office 2007. Auch das hat geklappt. Bis zum letzten Servicepack von Office 2007. Seit ich das Servicepack installiert habe bekomme ich eine Fehlermeldung im Makro und komme nicht weiter. Hier der aktuelle Code:
Code: '********************************** Excel öffnen ******************* Dim objExcel As Excel.Application Dim objWorkbook As Workbook Dim objWorksheet As WorkSheet '************************************************************ On Error Resume Next Set objExcel = GetObject(, "Excel.Application") If Err.Number Then Err.Clear On Error Resume Next Set objExcel = CreateObject("Excel.Application") If Err.Number Then Err.Clear MsgBox "Kann Excel nicht öffnen." End If End If objExcel.Run
Bei dem Befehl
Code: Set objExcel = GetObject(, "Excel.Application")
bekomme ich die Fehlermeldung: Fehler beim Kompilieren: Funktionsmerkmal der Objektbibliothek nicht unterstützt
Hat jemand eine Ahnung woran das liegt? Vielen Dank schon mal für Eure Hilfe. Gruß Ulrich
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ulr1ch Mitglied Konstrukteur
Beiträge: 75 Registriert: 18.12.2003 IV9 Windows XPpro Pentium 4 2,4GHz 1,5GB RAM
|
erstellt am: 11. Mai. 2009 09:45 <-- editieren / zitieren --> Unities abgeben:
Hallo Kollegen, ich hab nochmal ein bischen rumprobiert und die Lösung doch selbst gefunden: Unter Extras-Verweise fehlte das Häckchen bei "Microsoft Office 12.0 Object Library" Warum weiß ich nicht. Aber ich habs angehackt und es funktioniert weider. Bitte Entschuldigt mein vorschnelles posten. Gruß Ulrich
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |