| |  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte | | |  | PNY wird von NVIDIA zum Händler des Jahres gewählt - zum dritten Mal in Folge, eine Pressemitteilung
|
Autor
|
Thema: Embedded / Eingebettete Excel Tabellen - Daten lesen (3347 mal gelesen)
|
Manni29 Mitglied
 Beiträge: 6 Registriert: 05.05.2009
|
erstellt am: 05. Mai. 2009 00:39 <-- editieren / zitieren --> Unities abgeben:         
Hallo liebe CAD Community! Ich bin neu hier im Forum und hab gleich mal eine Frage: Ist es möglich, mittels VBA, Zelleninhalte aus eingebetteten Excel Tabellen (Ole Objekt) lesen zu können? Die Daten sollten dann direkt in AutoCAD weiter verwendet werden. Es ist mir schon gelungen Zelleninhalte aus einer externen Tabelle zu lesen (und zu verarbeiten) - aber irgendwie bekomme ich den Link zu eingebetteten Tabellen nicht hin. (Das sollte ohne den "Data Link" Tool von AutoCAD auch möglich sein, oder?) Meine AutoCAD Version ist 2009. Mein VBA Kenntnisse sind eher "frisch" Der Code für die Verbindung zu einer (bestehenden) externen Tabelle lautet wie folgt: Private Sub CommandButton1_Click() 'This code establishes connection with existing spreadsheet 'Modify the path string to the location and name of your life Dim excelApp As Excel.Application Dim wbkObj As Workbook Dim shtObj As Worksheet On Error Resume Next UserForm1.Hide Err.Clear Set excelApp = GetObject(, "Excel.Application") If Err <> 0 Then Err.Clear Set excelApp = CreateObject("Excel.Application") If Err <> 0 Then MsgBox "Could not start Excel", vbExclamation End End If End If excelApp.Visible = True Set wbkObj = Workbooks.Open(FileName:="e:\Excel VBA Werte.xls") Set shtObj = excelApp.Worksheets(1) UserForm1.Show End Sub Wie gesagt, dieser Code funktioniert einwandfrei, nur statt "e:\Excel VBA Werte.xls" sollte der Link zu einer eingebetteten Tabelle stehen. Müssen da evtl. weitere Referenzen gesetzt werden? Wie lautet der Verweis? Hab im Forum schon danach gesucht, leider nichts Brauchbares gefunden. Wäre schön mir da jemand weiter helfen könnte! Vielen Dank schonmal Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 05. Mai. 2009 08:50 <-- editieren / zitieren -->
Hi, herzlich willkommen bei CAD-de Vorerst, den Weg von eingebetteter XLS-Tabelle Zellen auslesen zu können kenne ich leider nicht, hätte aber ein paar Ideen, die ev. helfen. Wenn Du es über XLS brauchst (weil schon eine Menge DWG's mit eingebetteten XLS existieren), dann versuch mal, die Win-API für Copy&Paste zu nutzen indem Du ein Excel startest, eine leere Datei damit geöffnet hast und dann per Copy&Paste die Inhalte von der eingebetteten Tabelle hineinkopierst. Wenn Du gerade am Workflow arbeitest, dann versuch mal statt Excel-Tabelle eine AutoCAD-Tabelle zu verwenden. - alfred - ------------------ www.hollaus.at |
Manni29 Mitglied
 Beiträge: 6 Registriert: 05.05.2009
|
erstellt am: 06. Mai. 2009 03:19 <-- editieren / zitieren --> Unities abgeben:         
Also erstmal Danke Alfred für die schnelle Antwort so wie ich Dich verstanden habe, soll ich die interne Tabelle exportieren (über Copy&Paste) und von der externen Tabelle die Daten lesen... richtig? Habs probiert und klappt auch... aber, das wär dann ein unnötiger Umweg und ich hätte wieder 2 Datein die nicht getrennt werden dürfen. Auf diese Weise könnte ich natürlich gleich die externe Tabelle ändern und die Daten einlesen. Die AutoCAD Tabellen kann ich leider auch schlecht gebrauchen, weil meine Excel Tabelle viel kompliziertere Befehle enthält, die in AutoCAD Tabellen leider nicht möglich sind. Ich bin Dir aber für Deine Ratschläge dankbar! Gruß Manni Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 06. Mai. 2009 08:34 <-- editieren / zitieren -->
Hi, Zitat: das wär dann ein unnötiger Umweg und ich hätte wieder 2 Datein die nicht getrennt werden dürfen
...ich meinte auch nicht, dass Du die Excel-Tabelle, die Du per Paste erzeugst, unbedingt speichern musst, ich hätte diese nur generiert, um Zugriff auf die Zellen zu bekommen, die ich im OLE-Objekt innerhalb AutoCAD nicht hätte und dann wieder gelöscht. Zitat: ein unnötiger Umweg
...für mich wäre es ein notwendiger und kein unnötiger Weg, da ich sonst keinen Weg kennen würde  aber es gibt sicher noch wissendere, die es vielleicht unnötig machen könnten. - alfred - ------------------ www.hollaus.at |
Manni29 Mitglied
 Beiträge: 6 Registriert: 05.05.2009
|
erstellt am: 06. Mai. 2009 09:26 <-- editieren / zitieren --> Unities abgeben:         
Zitat: ...ich meinte auch nicht, dass Du die Excel-Tabelle, die Du per Paste erzeugst, unbedingt speichern musst, ich hätte diese nur generiert, um Zugriff auf die Zellen zu bekommen, die ich im OLE-Objekt innerhalb AutoCAD nicht hätte und dann wieder gelöscht.
hm das hört sich interessant an! Könntest du mir ein kleines Beispiel geben, wie so ein Code ausschauen könnte? Danke schonmal im vorraus
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Stelli1 Moderator Verm.-Ing.
    
 Beiträge: 1526 Registriert: 17.08.2005 Map 2000-2014, Rasterdesign, MapGuide, Autodesk Topobase, VS6, VS.net 2013
|
erstellt am: 06. Mai. 2009 09:54 <-- editieren / zitieren --> Unities abgeben:          Nur für Manni29
Hallo Manni, Zitat: Original erstellt von a.n.: ....dann versuch mal, die Win-API für Copy&Paste zu nutzen indem Du ein Excel startest, eine leere Datei damit geöffnet hast und dann per Copy&Paste die Inhalte von der eingebetteten Tabelle hineinkopierst.
Hast du den Code dafür schon fertig und wie sieht er aus ? Wilfried Stelberg ------------------ Warum lisp'eln wenn's auch anders geht. www.ib-stelberg.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |