| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Daten aus Excel importieren (2406 mal gelesen)
|
Mignon Mitglied Student
Beiträge: 43 Registriert: 10.12.2015 Inventor Prof. 2015 Windows 7, 64 bit
|
erstellt am: 05. Jan. 2016 10:10 <-- editieren / zitieren --> Unities abgeben:
Hallo Ihr da Draußen, Besteht die Möglichkeit, dass ich gewisse Daten, also Toleranzen in einer Exceldatei hinterlege und darauf dann per VBA drauf zugreifen kann? Dann kann man, sofern sich die Werte mal ändert, "einfach" die Daten in der Exceldatei ändern, ohne auf den Quellcode des Programm zugreifen zu müssen. Ich habe bisher einige Beispiele gefunden, bei denen die Abmessungen von Bauteile (Länge, Breite, etc...) über den Import einer Excelliste realisiert wurde.
Geht das auch in meinem Fall? LG M Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CAD-Huebner Ehrenmitglied V.I.P. h.c. Verm.- Ing., ATC-Trainer
Beiträge: 9732 Registriert: 01.12.2003 AutoCAD 200x, Civil, LDD, MDT, ARD, ACA(ADT) Inventor AIP 4-11,200x WinXP, W2K
|
erstellt am: 08. Jan. 2016 13:33 <-- editieren / zitieren --> Unities abgeben: Nur für Mignon
Natürlich ist es mit Inventor VBA möglich, benötigte Daten aus einer Textdatei, aus einer Exceltabelle, aus benuterdefinierten Inventorparametern in einem Bauteil oder auch aus der Windows Registry zu lesen. Werte müssen nicht hardcodiert in das VBA Makro geschrieben werden. Ob Excel da jetzt am besten geeignet ist oder ein Registy Eintrag oder eine Wertetabelle als TXT oder XML nicht genau so gut oder besser ist, hängt von von der Aufgabe ab (wie viele Werte werden gelesen, wer ändert Werte...). ------------------ Mit freundlichem Gruß Udo Hübner www.CAD-Huebner.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Mignon Mitglied Student
Beiträge: 43 Registriert: 10.12.2015 Inventor Prof. 2015 Windows 7, 64 bit
|
erstellt am: 11. Jan. 2016 07:19 <-- editieren / zitieren --> Unities abgeben:
|
Chris 31 Mitglied Konstrukteur und Mädchen für alles
Beiträge: 575 Registriert: 23.04.2013 Inventor 2013/2015 Windows 7 64 bit 16GB RAM nVidia Quadro 600
|
erstellt am: 11. Jan. 2016 07:42 <-- editieren / zitieren --> Unities abgeben: Nur für Mignon
Auf eine Excel-Date kannst du mit folgendem Code zugreifen: Code:
'Aktive Excel-Instanz holen Dim exapp as Excel.Application Set exapp = GetObject(, "Excel.Application") 'Aktives Workbook holen Dim workbook As Excel.workbook Set workbook = exapp.ActiveWorkbook 'Aktives Blatt holen Dim oSheet As Excel.WorkSheet Set oSheet = workbook.ActiveSheet
Nicht vergessen unter Verweise den Verweis für die Microsoft Excel Object Library zu setzen. ------------------ MFG Chris Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Mignon Mitglied Student
Beiträge: 43 Registriert: 10.12.2015 Inventor Prof. 2015 Windows 7, 64 bit
|
erstellt am: 11. Jan. 2016 08:16 <-- editieren / zitieren --> Unities abgeben:
Wie setze ich diese Verweise? Bzw kann ich die auch über den VBA-Code setzten? Das Tool soll ja später auch auf anderen Rechner laufen. Benutze Inventor Prof. 2015 Vielen Dank M [Diese Nachricht wurde von Mignon am 11. Jan. 2016 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Chris 31 Mitglied Konstrukteur und Mädchen für alles
Beiträge: 575 Registriert: 23.04.2013 Inventor 2013/2015 Windows 7 64 bit 16GB RAM nVidia Quadro 600
|
erstellt am: 11. Jan. 2016 08:51 <-- editieren / zitieren --> Unities abgeben: Nur für Mignon
Normalerweise setzt du den Verweis über: VBA-Fenster-> Reiter Extras-> Verweise-> passenden Verweis suchen-> Haken setzen-> OK klicken-> fertig. Über Code den Verweis setzen ist in meinen Augen problematisch. Normalerweise aktualisiert sich der Verweis selbstständig, wenn du das Macro verteilst. Wenn du den Verweis als Code schreibst, könnte es sein, dass er ins Leere läuft, da die Verweisdatei woanders gespeichert ist, anders heißt, oder was auch immer... ------------------ MFG Chris Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Mignon Mitglied Student
Beiträge: 43 Registriert: 10.12.2015 Inventor Prof. 2015 Windows 7, 64 bit
|
erstellt am: 11. Jan. 2016 09:29 <-- editieren / zitieren --> Unities abgeben:
Sehr cool, danke, das klappt jetzt! Aber jetzt noch ein weitere Frage: Geht das auch irgendwie, dass ich die Exceldatei nicht im Hintergrund geöffnet haben muss? Und dass ich dann auch auf die unterschiedlichen "Blätter" in der Exceldatei zugreifen kann? Grüße M Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Chris 31 Mitglied Konstrukteur und Mädchen für alles
Beiträge: 575 Registriert: 23.04.2013 Inventor 2013/2015 Windows 7 64 bit 16GB RAM nVidia Quadro 600
|
erstellt am: 11. Jan. 2016 10:03 <-- editieren / zitieren --> Unities abgeben: Nur für Mignon
Also: Du musst die Datei im Hintergrund öffnen, da ja sonst keine Instanz zum Zugreifen hast. Du kannst auf die unterschiedlichen "Blätter" zugreifen mit: Code: Dim oSheet As Excel.WorkSheet Set oSheet = workbook.Sheets.Item("NAME DES SHEETS")
------------------ MFG Chris Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |