Autor
|
Thema: Wert aus Excel Importieren (3620 mal gelesen)
|
PukyRider Mitglied Student, Maschinenbau
Beiträge: 31 Registriert: 19.04.2013
|
erstellt am: 07. Jun. 2013 12:57 <-- editieren / zitieren --> Unities abgeben:
Hallo Gemeinde, ich habe hier mal ein Macro, welches fast überall im Forum schon mal aufgetaucht ist (desswegen kein Urheber) Es soll nur einen Wert aus einer Excel Datei in Catia importieren. Das ist nur die Grundfunktion die ich brauche, aber leider scheitere ich schon hier. Als Test lasse ich mir mit MsgBox den Wert ausgeben, aber es kommt nichts. Hier erstmal der Code:
Code: Sub CATMain()Dim Excel As Object On Error Resume Next Set Excel = GetObject(, "Excel.Application") Wahrscheinlich liegt es an dem fehlenden Ausdruck vor dem Komma, bin da aber ahnungslos If Err.Number <> 0 Then Set Excel = CreateObject("Excel.Application") Excel.Visible = True 'Excel im Hintergrund End If Excel.Workbooks.Open "C:\Temp\test.xls" XLS_Feld = CDbl(WS.Cells(1,1).Value MsgBox "Inhalt der Cell" & XLS_Feld End Sub
Im Code steht ja schon meine Vermutung, da wenn ich es laufen lasse, XLS_Feld keinen Wert hat. Zur Info: Datei liegt im angegebenen Verzeichniss und ist geöffnet. Hoffe ihr könnt mir helfen, vielen Dank Puky Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 07. Jun. 2013 13:20 <-- editieren / zitieren --> Unities abgeben: Nur für PukyRider
Servus Es ist nicht definiert in welcher Mappe du den Wert auslesen willst. zB Code: Sub CATMain()Dim Excel As Object Dim WB As Object On Error Resume Next Set Excel = GetObject(, "Excel.Application") If Err.Number <> 0 Then Set Excel = CreateObject("Excel.Application") Excel.Visible = True 'Excel im Hintergrund End If On Error goto 0 Set WB = Excel.Workbooks.Open ("C:\Temp\test.xls") XLS_Feld = WB.ActiveSheet.Cells(1, 2) MsgBox "Inhalt der Cell" & XLS_Feld End Sub
Gruß Bernd------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
roccat Mitglied Konstrukteur
Beiträge: 172 Registriert: 19.02.2010 WinXP/Win7 Office XP/2007 Catia V5 R16-R19, VB6.0, VBA, BASCOM-AVR VB .Net 2010
|
erstellt am: 07. Jun. 2013 13:28 <-- editieren / zitieren --> Unities abgeben: Nur für PukyRider
Hi, hast du unter TOOLS\REFERENCES\ die "MICROSOFT EXCEL ?.? Object Library" gezogen? Code:
Sub CatMain() Dim MyExcel As Excel.Application Dim MyWorkbooks As Excel.Workbooks Dim MyWorkbook As Excel.Workbook Dim MyWorkSheet As Excel.Worksheet 'Geöffnetes Excel ansprechen On Error Resume Next Set MyExcel = GetObject(, "Excel.Application")
'Wenn nicht offen dann neuen ExcelProzess erzeugen If MyExcel Is Nothing Then Set MyExcel = CreateObject("Excel.Application") End If On Error GoTo 0
'Wenn ExcelProzess nicht erzeugt werden konnte dann Makro abbrechen If MyExcel Is Nothing Then MsgBox "Kein Excel auf Ihren PC vorhanden", vbCritical End End If 'Mit Excel weiterarbeiten... MyExcel.Visible = False 'Excel im Hintergrund Set MyWorkbooks = MyExcel.Workbooks Set MyWorkbook = MyWorkbooks.Open("C:\Temp\test.xls") Set MyWorkSheet = MyWorkbook.ActiveSheet 'Ausgabe MsgBox "Inhalt der Cell: " & MyWorkSheet.Cells(1, 1).Value 'Alles schließen (im TaskManager häufen sich sonst die Excel-Prozesse) MyWorkbook.Close MyExcel.Quit End Sub
mfG Mario ------------------ Wenn das die Lösung sein soll, will ich mein Problem zurück !! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
PukyRider Mitglied Student, Maschinenbau
Beiträge: 31 Registriert: 19.04.2013
|
erstellt am: 07. Jun. 2013 13:48 <-- editieren / zitieren --> Unities abgeben:
Danke für die schnellen Antworten. @bgrittmann: es hat sich leider nichts geändert. @roccat: References habe ich in Catia nicht unter Tools und das Makro hat ein End zu viel, dann läuft es bis Line 19 und sagt: Object erforderlich Code: If MyExcel Is Nothing Then
[Diese Nachricht wurde von PukyRider am 07. Jun. 2013 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
roccat Mitglied Konstrukteur
Beiträge: 172 Registriert: 19.02.2010 WinXP/Win7 Office XP/2007 Catia V5 R16-R19, VB6.0, VBA, BASCOM-AVR VB .Net 2010
|
erstellt am: 07. Jun. 2013 13:55 <-- editieren / zitieren --> Unities abgeben: Nur für PukyRider
Hi, ohne diese Reference kann es nicht laufen. Das End bricht das Makro ab wenn Excel nicht angesprochen werden kann, das passiert unter anderen wenn du die Reference nicht gezogen hast. Hast du Excel auf deinen Rechner installiert? Wenn ja, sollte die Reference auch vorhanden und anwählbar sein. mfG Mario Edit: jetzt hab ich dich verstanden... nicht in Catia im VBA-Editor sind die Referencen versteckt ------------------ Wenn das die Lösung sein soll, will ich mein Problem zurück !! [Diese Nachricht wurde von roccat am 07. Jun. 2013 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
PukyRider Mitglied Student, Maschinenbau
Beiträge: 31 Registriert: 19.04.2013
|
erstellt am: 07. Jun. 2013 13:56 <-- editieren / zitieren --> Unities abgeben:
Mist gar nicht dran gedacht, auf der Workstation läuft nur OpenOffice. Macht das einen Unterschied? Nachtrag: Ich habe den Unterpunkt References in Tools gar nicht. Nachtrag 2: VBA Editor ist bei mir nicht Installiert. Gibt es einen anderen Weg oder muss ich da erstmal einen Root-Admin organisieren? [Diese Nachricht wurde von PukyRider am 07. Jun. 2013 editiert.] [Diese Nachricht wurde von PukyRider am 07. Jun. 2013 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
roccat Mitglied Konstrukteur
Beiträge: 172 Registriert: 19.02.2010 WinXP/Win7 Office XP/2007 Catia V5 R16-R19, VB6.0, VBA, BASCOM-AVR VB .Net 2010
|
erstellt am: 07. Jun. 2013 14:16 <-- editieren / zitieren --> Unities abgeben: Nur für PukyRider
Glaube nicht das du OpenOffice so behandeln kannst wie das Microsoft Produkt. Wenn überhaupt kommst du mit Get oder CreateObject auf die Application. Habs aber noch nie versucht. Also ohne Excel wirds so nicht gehen. Du schreibst in CatScript? Dann tausche mal das "End" in "Exit Sub". Dann sollte es mit Excel funktionieren. Wenn der Visual Basic Editor unter Tools\Macro... grau ist kannst du den vom Admin nachinstallieren lassen. mfG Mario ------------------ Wenn das die Lösung sein soll, will ich mein Problem zurück !! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
PukyRider Mitglied Student, Maschinenbau
Beiträge: 31 Registriert: 19.04.2013
|
erstellt am: 07. Jun. 2013 14:32 <-- editieren / zitieren --> Unities abgeben:
Dein Script läuft soweit, das Problem ist, das für MyExcel kein Object vorhanden ist. Ja schreibe in CatScript und der VBE ist nicht grau, sondern wenn ich etwas öffnen will kommt die Meldung das es nicht richtig installiert ist. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 08. Jun. 2013 11:51 <-- editieren / zitieren --> Unities abgeben: Nur für PukyRider
Servus IMHO kannst du ohne Excel-Installation auf dem Rechner nicht per Makro Werte aus der Datei auslesen. Per Makro ist sehr aufwändig über OpenOffice/LibreOffice die Daten auszulesen. Am einfachsten wäre, die Datei als csv bzw txt zu exportieren (manuell) und dann per Makro auszulesen. Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
PukyRider Mitglied Student, Maschinenbau
Beiträge: 31 Registriert: 19.04.2013
|
erstellt am: 12. Jun. 2013 08:13 <-- editieren / zitieren --> Unities abgeben:
Die Idee hatte ich auch schon, aber leider macht es das Makro dann quasi überflüssig, da in der Exceldatei ein Name, ebenfalls mit Makros, erstellt wird. Dann muss ich da drauf verzichten, trotzdem danke an alle. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 12. Jun. 2013 08:30 <-- editieren / zitieren --> Unities abgeben: Nur für PukyRider
|
PukyRider Mitglied Student, Maschinenbau
Beiträge: 31 Registriert: 19.04.2013
|
erstellt am: 12. Jun. 2013 10:43 <-- editieren / zitieren --> Unities abgeben:
Das Makro ist in Excel geschrieben und auf der Workstation ist OpenOffice installiert. Die .xlt Dateien werden mit OpenOffice Calc geöffnet. Edit: Dazu kommt ja auch noch das der VB Editor nicht installiert ist. Grüße Tim [Diese Nachricht wurde von PukyRider am 12. Jun. 2013 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HoBLila Mitglied Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx
Beiträge: 1118 Registriert: 29.05.2008 DELL PRECISION T3500 Intel(R) Xeon(R) CPU W3540 @ 2.93GHz 12285 MB RAM NVIDIA Quadro FX 1800 Microsoft Windows 7 Enterprise Service Pack 1 CATIA V5 R19 SP09 HF69 VB6.5 CAA RADE CDC
|
erstellt am: 12. Jun. 2013 11:59 <-- editieren / zitieren --> Unities abgeben: Nur für PukyRider
Hallo Tim, bitte überdenk noch einmal Dein Projekt, es scheint nicht fertig durchkonzeptioniert sein. So kann es einfach nicht funktionieren und hier wird versucht Fakten mit extremen Systembrüchen zu schaffen. Das komplette Konzept stimmt nicht und wird nicht funktionieren. Mit jeder Antwort die Du bekommst werden hier neue Löcher aufgerissen, weshalb ich mich bisher auch rausgehalten habe. Was ihr vorhabt, warum auch immer so extrem kompliziert, wird nicht funktionieren. Bitte macht euch zunächst über die Technologien, bitte mit einem Experten, Gedanken und versucht bitte auch Brüche zwischen den Technologien zu vermeiden. Wenn das Ganze auf Excel-Makro zielt und das der wichtigste Bestandteil ist, dann erweitert das Makro doch einfach um die CATIA-Inhalte oder eben umgekehrt bringt alles in ein Makro in CATIA, nicht dieses hin und her. Es ist ehh beides VBA oder VBS, je nachdem, was ihr für Anforderungen habt. Also jetzt erst einmal das Konzept ausarbeiten und vor allem klären, was ihr überhaupt für ein Ziel habt. :-) Das hilft oft weiter und würde auch uns helfen Dir Alternativen vorzuschlagen. Kleiner Hinweis noch von mir, damit eure Expertenrunde schon nen Vorschuss hat: OpenOffice nutzt ne andere Programmiersprache für Makros. Soweit ich weiß ist das StarBasic oder StarOffice. Vielleicht kann man das aber mittlerweile miteinander verheiraten. ------------------ Mit freundlichen Grüßen, Henry Schneider alias Lila Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren: Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen, die Natur versucht, immer bessere Idioten zu bauen Xing Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
PukyRider Mitglied Student, Maschinenbau
Beiträge: 31 Registriert: 19.04.2013
|
erstellt am: 12. Jun. 2013 12:43 <-- editieren / zitieren --> Unities abgeben:
Ja da hast du recht. Ich habe leider nicht genug Kenntnisse oder Erfahrung auf dem Gebiet der Makroprogramierung und so hat sich erst im Laufe des Threads herausgestellt, dass ich Programmteile in Catia brauche, die ich nicht habe. Das mit dem Makro in Excel ist nur Nebensache und tut hier eigendlich nichts zur Sache. Die Grundidee war halt das "einfache" importieren eines Wertes aus einer Exceldatei. Was sich allerdings, aufgrund des fehlenden VBE, als unerwartet komplex herausgestellt hat. Aber ich werde mir etwas überlegen und mit einer anderen Herangehensweise das Problem lösen. Grüße Tim ------------------ Vielen Dank für Ihr Interesse! [Diese Nachricht wurde von PukyRider am 12. Jun. 2013 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |