Autor
|
Thema: Aktive Excel speichern (2242 mal gelesen)
|
shoutz000 Mitglied Techn. Produktdesigner
Beiträge: 168 Registriert: 19.08.2013 CatiaV5 R19 CatiaV5 R24 Windows 7 Professional
|
erstellt am: 10. Jul. 2014 07:43 <-- editieren / zitieren --> Unities abgeben:
Hallo miteinander ich habe mal wieder ein Problem. Und zwar benutze ich folgendes Makro welches ich vor einiger Zeit mit sehr starker Kooperation mit DasDon erstellt habe: http://ww3.cad.de/foren/ubb/Forum137/HTML/005392.shtml Nun möchte ich nach der Abarbeitung und Auslesung der Stückliste das diese Automatisch in dem Ordner des aktiven Products gespeichert wird. Ich habe es hinbekommen das eine leere Excel gespeichert wird und mit dem Code jetzt passiert garnichts?! Weiß jemand weiter? dim objXL As Object dim sPath As String sPath = "C:\Program Files (x86)\Dassault Systemes\Makros\Stueckliste\EFS-Stueckliste_Vorlage.xltx" CONST xlsStartRow As Integer = 11 '---------------------------------------- Sub CATMain() ... ... ... End Sub Sub setUpExcel() ... ... ... End Sub Sub WriteToExcel ... ... ... End Sub Sub treewalk ... ... ... End Sub Sub SaveExcel dim objXL As Object Set objXL = objXL.ActiveWorkbook Dim Name As String Name = currentprod.PartNumber Dim strPath As String strPath = CATIA.ActiveDocument.Path dim sFileName as String sFileName = strPath & "\" & Name
objXL.ActiveWorkbook.SaveAs sFileName & ".xlsx" End Sub Vielen Dank schoneimal im Voraus 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: 10. Jul. 2014 08:00 <-- editieren / zitieren --> Unities abgeben: Nur für shoutz000
Servus Stimmt der Pfad bzw Dateiname (mit MSGBox mal ausgeben lasen) Hast du Schreibrecht auf das Verzeichnis? Welche Excelversion hast du? (bei Excel 2010 steht in der Hilfe folgendes Beispiel: "NewBook.SaveAs Filename:=fName") Gruß Bernd
------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
shoutz000 Mitglied Techn. Produktdesigner
Beiträge: 168 Registriert: 19.08.2013 CatiaV5 R19 CatiaV5 R24 Windows 7 Professional
|
erstellt am: 10. Jul. 2014 11:40 <-- editieren / zitieren --> Unities abgeben:
Hey also der Pfad stimmt Schreibrechte habe ich auch und Word habe ich die 2010er Version Also so passiert weiterhin nichts: (Wenn ich bei fName direkt einen Pfad und Dateinamen angebe kommt eine Fehlermeldung das er eine Anweisung erwartet hat.) Sub SaveExcel
dim NewBook As Object Set NewBook = objXL.ActiveWorkbook Dim Name As String Name = currentprod.PartNumber Dim strPath As String strPath = CATIA.ActiveDocument.Path dim fName as String fName = strPath & "\" & Name NewBook.SaveAs FileName = fName & ".xlsx" End Sub [Diese Nachricht wurde von shoutz000 am 10. Jul. 2014 editiert.] 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: 10. Jul. 2014 11:43 <-- editieren / zitieren --> Unities abgeben: Nur für shoutz000
|
shoutz000 Mitglied Techn. Produktdesigner
Beiträge: 168 Registriert: 19.08.2013 CatiaV5 R19 CatiaV5 R24 Windows 7 Professional
|
erstellt am: 10. Jul. 2014 13:13 <-- editieren / zitieren --> Unities abgeben:
|
shoutz000 Mitglied Techn. Produktdesigner
Beiträge: 168 Registriert: 19.08.2013 CatiaV5 R19 CatiaV5 R24 Windows 7 Professional
|
erstellt am: 10. Jul. 2014 17:25 <-- editieren / zitieren --> Unities abgeben:
Kann es sein das dieser Sub komplett übersprungen wird?! ich habe über ein Makro die Zeile Dim Name As String Name = currentprod.PartNumber geprüft es wurde mir zurück gegeben das es diesen Befehl nicht gibt. Name = currentprod.Name funktioniert. Aber im Stücklistenmakro kommt bei beiden Varianten keine Fehlermeldung?! nur bei NewBook.SaveAs FileName := fName kommt auch im Stücklistenmakro ein Fehler... 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: 10. Jul. 2014 17:33 <-- editieren / zitieren --> Unities abgeben: Nur für shoutz000
Servus Ist "currenrod" innerhalb der Sub bekannt? Zitat: Kann es sein das dieser Sub komplett übersprungen wird?!
teste es coh mit einem Haltepunkt VBA) oder entsprechende MsgBoxen. Was wird zB für fName ausgegeben? Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Thomas Harmening Ehrenmitglied V.I.P. h.c. Arbeiter ツ
Beiträge: 2897 Registriert: 06.07.2001 NX 10 Win 7
|
erstellt am: 10. Jul. 2014 19:13 <-- editieren / zitieren --> Unities abgeben: Nur für shoutz000
Zitat: Original erstellt von shoutz000: Hallo miteinander ich habe mal wieder ein Problem.Und zwar benutze ich folgendes Makro welches ich vor einiger Zeit mit sehr starker Kooperation mit DasDon erstellt habe: http://ww3.cad.de/foren/ubb/Forum137/HTML/005392.shtml
ahja... schaut für mich aber eher so aus als wäre die Arbeit nur bei DasDon gwesen Code: Sub SaveExcel()Set xlApp = CreateObject("Excel.Application") '*** 'vorhandene Datei laden 'sPath = "C:\tmp\hugo.xlsx" 'Set xlBook = xlApp.Workbooks.Open(sPath) '*** 'neues Exceldokument Set xlBook = xlApp.Workbooks.Add '*** Set xlSheet = xlBook.ActiveSheet Text = xlSheet.Cells(1, 1).Value ' excel.Worksheets("Tabelle1").Cells(1, 1).Value MsgBox Text xlSheet.Cells(1, 1) = "Hugo" Text = xlSheet.Cells(1, 1).Value MsgBox Text strPath = CATIA.ActiveDocument.Path 'Name = CATIA.ActiveDocument.Product.Nomenclature 'fName = "C:\tmp\" & Name fName = strPath & "\" & Name xlBook.SaveAs Filename:=fName xlBook.Close xlApp.Quit End Sub
[Diese Nachricht wurde von Thomas Harmening am 10. Jul. 2014 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
shoutz000 Mitglied Techn. Produktdesigner
Beiträge: 168 Registriert: 19.08.2013 CatiaV5 R19 CatiaV5 R24 Windows 7 Professional
|
erstellt am: 11. Jul. 2014 10:48 <-- editieren / zitieren --> Unities abgeben:
Da komm ich jetzt nicht mit?! Zitat:
Servus Ist "currenrod" innerhalb der Sub bekannt?teste es coh mit einem Haltepunkt VBA) oder entsprechende MsgBoxen. Was wird zB für fName ausgegeben? Gruß Bernd
Stimmt deswegen ja mit sehr starker... Also der Sub SaveExcel stand bei mir bisher ganz unten nach dem alles ausgelesen wurde und es hat nicht funktioniert. Jetzt habe ich es ganz nach oben geschrieben wo Excel geöffnet wird, aber es kommt nach wie vor hier die Fehlermeldung: xlBook.SaveAs Filename:=fName
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: 11. Jul. 2014 10:50 <-- editieren / zitieren --> Unities abgeben: Nur für shoutz000
Servus Welchen "Wert" hat "fName" (sonderzeichen, richtiger Pfade ,...) Schon mal probiert den Pfad bzw Dateinamen hart zu coden? Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
shoutz000 Mitglied Techn. Produktdesigner
Beiträge: 168 Registriert: 19.08.2013 CatiaV5 R19 CatiaV5 R24 Windows 7 Professional
|
erstellt am: 11. Jul. 2014 11:17 <-- editieren / zitieren --> Unities abgeben:
Servus, also der Sub wird übersprungen. Ich habe es jetzt so geschrieben, bekomme allerdings keine Meldung... Wenn ich das in ein eigenes Makro schreibe bekomme ich die Meldungen Pfad ist OK / PartNumber ist OK. '---------------------------------------- Sub SaveExcel () Dim Name As String Name = CATIA.ActiveDocument.Product.PartNumber Dim strPath As String strPath = CATIA.ActiveDocument.Path Box = MsgBox(strPath) Box = MsgBox(Name) End Sub '---------------------------------------- Schreib ich das jedoch unter Sub SetUpExcel erhalte ich die Rückmeldungen.
Speichern per xlBook.SaveAs / xlApp.SaveAs / :=fName funktioniert nicht Das Makro ist ja aber mit objXL und objCell geschrieben kann das ein Grund sein? objXL.SaveAs geht aber auch nicht
[Diese Nachricht wurde von shoutz000 am 11. Jul. 2014 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
shoutz000 Mitglied Techn. Produktdesigner
Beiträge: 168 Registriert: 19.08.2013 CatiaV5 R19 CatiaV5 R24 Windows 7 Professional
|
erstellt am: 11. Jul. 2014 11:42 <-- editieren / zitieren --> Unities abgeben:
Sooo also am Anfang des Makros unter Sub SetUp Excel läuft die Sache jetzt xD. Unten vor der EndMessage funktioniert es aber weiterhin nicht. '---------------------------------------- Sub setUpExcel() dim inString As String 'Exel Öffnen Set objXL = CreateObject("Excel.Application") Set objXlBook = objXL.Workbooks.Open(sPath) objXL.Visible = True Dim Name As String Name = CATIA.ActiveDocument.Product.PartNumber Dim strPath As String strPath = CATIA.ActiveDocument.Path dim sFileName as String sFileName = strPath & "\" & Name & ".xlsx" objXlBook.SaveAs sFileName 'Eingabeaufforderungen für den Schriftkopf 'automatische Angabe 1 myFunc1 = CATIA.SystemService.Environ("USERNAME") objXL.Cells(6,4).Value = myFunc1
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: 11. Jul. 2014 11:51 <-- editieren / zitieren --> Unities abgeben: Nur für shoutz000
Servus Bitte Setz mal eine Haltemarke an der der Stelle und beobachte im Locals bzw Watchfesnter ob die entsprechenden Objekte richtig gefüllt sind. Welche Variablen und Objekte in welche Routine verfügbar sind muss du dir bewusst werden (und mal den Code auch verstehen) Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
shoutz000 Mitglied Techn. Produktdesigner
Beiträge: 168 Registriert: 19.08.2013 CatiaV5 R19 CatiaV5 R24 Windows 7 Professional
|
erstellt am: 11. Jul. 2014 15:51 <-- editieren / zitieren --> Unities abgeben:
Naja also einiges versteh ich schon aber beim treewalk steig ich aus im Editor komm ich auch nicht arg weit da lässt sich das Makro nicht ausführen?! Ich belass das speichern jetzt erstmal wie folgt: Sub setUpExcel() dim inString As String 'Exel Öffnen & im Productverzeichnis speichern Set objXL = CreateObject("Excel.Application") Set objXlBook = objXL.Workbooks.Open(sPath) objXL.Visible = True Dim Name As String Name = CATIA.ActiveDocument.Product.PartNumber Dim strPath As String strPath = CATIA.ActiveDocument.Path dim sFileName as String sFileName = strPath & "\" & Name & ".xlsx" objXlBook.SaveAs sFileName 'Eingabeaufforderungen für den Schriftkopf 'automatische Angabe 1 myFunc1 = CATIA.SystemService.Environ("USERNAME") objXL.Cells(6,4).Value = myFunc1 ... ... ... Ich habe alle Angaben um vor der EndMessage zu speichern abgesehen davon das ich nicht weiß wie ich auf die aktive / geöffnete Excel zugreifen kann um diese zu speichern. Wenn ich dort die Vorlage erneut öffne kann ich diese auch speichern was jedoch nicht sehr hilfreich ist. An und für sich vom Gedankengang her absolut banal... '---------------------------------------- Sub SaveExcel() Set objXlBook = AKTIVE/GEÖFFNETE.EXCEL.ANWENDUNG Dim Name As String Name = CATIA.ActiveDocument.Product.PartNumber Dim strPath As String strPath = CATIA.ActiveDocument.Path dim sFileName as String sFileName = strPath & "\" & Name & ".xlsx" objXlBook.SaveAs sFileName Sub EndMessage ... ... ... Sub End Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Aitec Mitglied
Beiträge: 30 Registriert: 25.04.2018 Catia V5-R2016
|
erstellt am: 25. Jun. 2018 10:46 <-- editieren / zitieren --> Unities abgeben: Nur für shoutz000
Hallo CAD-Community, kann mir evtl. jemand verraten wie ich den Zielspeicherort für meine Exceldatei festlegen kann. Zur zeit verwenden ich folgenden Code zum Speichern: Code:
Dim NewBook As Object Set NewBook = objXL.ActiveWorkbook NewBook.SaveAs FileName:="testdoc_25" & ".xlsx" NewBook.Close objXL.Quit
Das funktioniert auch einwandfrei. VG 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: 25. Jun. 2018 11:40 <-- editieren / zitieren --> Unities abgeben: Nur für shoutz000
|
Aitec Mitglied
Beiträge: 30 Registriert: 25.04.2018 Catia V5-R2016
|
erstellt am: 26. Jun. 2018 08:36 <-- editieren / zitieren --> Unities abgeben: Nur für shoutz000
|