Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Inventor
  fx-Parameter in xml exportieren & per VBA-Makro in Excel

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
  
3 Gründe, warum ZWCAD 2024 in Sachen Effizienz eine führende Rolle spielt
Autor Thema:  fx-Parameter in xml exportieren & per VBA-Makro in Excel (1818 mal gelesen)
Traxtormer
Mitglied



Sehen Sie sich das Profil von Traxtormer an!   Senden Sie eine Private Message an Traxtormer  Schreiben Sie einen Gästebucheintrag für Traxtormer

Beiträge: 59
Registriert: 12.04.2016

Windows 10 64-bit / Inventor Professional 2023

erstellt am: 24. Okt. 2017 18:06    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo zusammen,


die fx-Parameter vom Inventor 2016 in eine xml zu exportieren geht ja ohne Probleme, aber meine VBA-Kenntnisse sind hier leider sehr wenig ausgeprägt. Wollte mal nach Eurer Expertise fragen.

Ich haben ein Excel-Berechnungs-File, das unter Anderem als Input die letztgültigen Parameter vom Inventor-Modell benötigt. Ich stelle mir Folgendes vor:

1.) Per Button die von mir erzeugte xml-Datei ins Excel laden und dann quasi nur die brauchbaren Infos in ein speziell benanntes Tabellenblatt (zuerst komplett zu leeren und dann) zu schreiben(jeweils eine Spalte für):

-Parametername,
-dessen Wert !ohne Einheit! (Wenngleich eine Formel verwendet wird trotzdem nur den Endwert ausgeben!)
-Einheit separat

2.) Ich kann die vorbereitete Parameter-Liste aus dem Tabellenblatt dann mittels S-Verweis in die Berechnungs-Formeln einlesen


Bitte um Eure Hilfe!

Danke!

LG

PS: Ich nehme mal an es wird mal mit Folgendem starten: 

Dim vntFile As Variant
vntFile = Application.GetOpenFilename("XML Dateien (*.xml),*.xml", MultiSelect:=False)

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

xerxses
Mitglied
Laufbursche


Sehen Sie sich das Profil von xerxses an!   Senden Sie eine Private Message an xerxses  Schreiben Sie einen Gästebucheintrag für xerxses

Beiträge: 130
Registriert: 06.09.2011

IV 2018
ACADM 2018

erstellt am: 24. Okt. 2017 18:38    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Traxtormer 10 Unities + Antwort hilfreich

was hältst du davon direkt per VBA alle Parameter nach Excel (ohne manueller Export) und dazu direkt in die gewünschte Excel-Arbeitsmappe (Vorlage) in das jeweilige gewollte Blatt zu exportieren?     Die gewünschten Werte bzw. Parameter kannst du dann schon wie du beschreibst per S-Verweis und andere Möglichkeiten rausziehen!

bin mir sicher dass hier im Inventor VBA Forum das passende Makro findest, wenn nicht dann einfach nochmal melden. 

[Diese Nachricht wurde von xerxses am 24. Okt. 2017 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Traxtormer
Mitglied



Sehen Sie sich das Profil von Traxtormer an!   Senden Sie eine Private Message an Traxtormer  Schreiben Sie einen Gästebucheintrag für Traxtormer

Beiträge: 59
Registriert: 12.04.2016

Windows 10 64-bit / Inventor Professional 2023

erstellt am: 24. Okt. 2017 19:57    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hi,

ich habe mich gegen die eingebettete Excel-Variante entschieden, da hier oft Performance-Einbußen erwähnt waren. Dabei würde ich gerne bleiben. -> Deswegen das Makro!  :-)

LG

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

xerxses
Mitglied
Laufbursche


Sehen Sie sich das Profil von xerxses an!   Senden Sie eine Private Message an xerxses  Schreiben Sie einen Gästebucheintrag für xerxses

Beiträge: 130
Registriert: 06.09.2011

IV 2018
ACADM 2018

erstellt am: 25. Okt. 2017 17:00    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Traxtormer 10 Unities + Antwort hilfreich

bitte ins VBA-Brett verschieben.

von Einbetten war nie die Rede und habe ich auch nicht gemeint.
ich kann dir nur die eine Lösung anbieten, funktioniert gut und habe ich selbst in Gebrauch.
Anmerkung: Makro ist nicht von mir. Quelle könnte Augce.de sein. bin mir aber nicht sicher.
nicht getestet. ist bei mir nur ein Teil eines Makros, hoffe ich hab nix vergessen.

Schritt 1: eine Exceldatei anlegen oder Direkt die Datei wo die Berechnungen statt finden. Name und Pfad merken.
Schritt 2: Name und Pfad im Makro eintragen
Schritt 3: Blattname im Makro eintragen.
Schritt 4: Bauteil öffnen, Makro starten und zurücklehnen.

Code:

Public Sub ParamExport()
 
    Dim iRow As Long
    Dim i As Long
    Dim XL As Object
    Dim xlWB As Object
    Dim xlWS As Object
   
 
    Set XL = CreateObject("Excel.Application")
' Dateipfad und Name
    Set xlWB = XL.Workbooks.Open("C:\Pfad\Dateinname")
    Set xlWS = xlWB.ActiveSheet
 
    XL.Application.Visible = True
 
    Dim oParams As Parameters
    Dim sDocName As String
   
' Blattname
    xlWB.Sheets("Blattname").Select
    Set xlWS = xlWB.ActiveSheet
    Const Pi As Double = 3.14159265358979
 
 
 
 
    If ThisApplication.ActiveDocumentType <> kAssemblyDocumentObject And _
        ThisApplication.ActiveDocumentType <> kPartDocumentObject Then
        MsgBox "Only Part or Assymbly document", vbCritical
        Exit Sub
    End If
on error resume next
    Set oParams = ThisApplication.ActiveDocument.ComponentDefinition.Parameters
   
    iRow = 2
    xlWS.cells(iRow, 1).Value = "Type"
    xlWS.cells(iRow, 2).Value = "Name"
    xlWS.cells(iRow, 3).Value = "Unit"
    xlWS.cells(iRow, 4).Value = "Equation"
    xlWS.cells(iRow, 5).Value = "Nennwert"
    xlWS.cells(iRow, 6).Value = "Export"
    xlWS.cells(iRow, 7).Value = "Health"

    For i = 1 To oParams.Count
        iRow = iRow + 1
        Select Case oParams.Item(i).Type
            Case kModelParameterObject
                xlWS.cells(iRow, 1).Value = "Model"
            Case kUserParameterObject
                xlWS.cells(iRow, 1).Value = "User"
            Case kTableParameterObject
                xlWS.cells(iRow, 1).Value = "Table"
        End Select
        xlWS.cells(iRow, 2).Value = oParams.Item(i).Name
        xlWS.cells(iRow, 3).Value = oParams.Item(i).Units
        xlWS.cells(iRow, 4).Value = oParams.Item(i).Expression
     
        Select Case oParams.Item(i).Units
            Case "mm"
                xlWS.cells(iRow, 5).Value = FormatNumber(oParams.Item(i).Value * 10) '* 10, 4) & " mm"
            Case "grd"
                xlWS.cells(iRow, 5).Value = FormatNumber(oParams.Item(i).Value * (180 / Pi), 4) '& " °"
            Case "oE"
                xlWS.cells(iRow, 5).Value = FormatNumber(oParams.Item(i).Value, 1) '& " oE"
            Case Else
                xlWS.cells(iRow, 5).Value = oParams.Item(i).Value
        End Select
                         
        xlWS.cells(iRow, 6).Value = oParams.Item(i).ExposedAsProperty 
        Select Case oParams.Item(i).HealthStatus
            Case kDeletedHealth
                xlWS.cells(iRow, 7).Value = "Deleted"
            Case kDriverLostHealth
                xlWS.cells(iRow, 7).Value = "Driver Lost"
            Case kInErrorHealth
                xlWS.cells(iRow, 7).Value = "In Error"
            Case kOutOfDateHealth
                xlWS.cells(iRow, 7).Value = "Out of Date"
            Case kUnknownHealth
                xlWS.cells(iRow, 7).Value = "Unknown"
            Case kUpToDateHealth
                xlWS.cells(iRow, 7).Value = "Up to Date"
        End Select
    Next
 
    XL.cells.Select
    XL.cells.EntireColumn.AutoFit
    xlWS.Range("A1").Select
Set xlWS = Nothing
Set xlWB = Nothing
Set XL = Nothing

End Sub

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Traxtormer
Mitglied



Sehen Sie sich das Profil von Traxtormer an!   Senden Sie eine Private Message an Traxtormer  Schreiben Sie einen Gästebucheintrag für Traxtormer

Beiträge: 59
Registriert: 12.04.2016

Windows 10 64-bit / Inventor Professional 2023

erstellt am: 28. Okt. 2017 13:04    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo xerxses,

vielen Dank für die Antwort, jetzt habe ich dich verstanden! Das ist natürlich noch praktischer!
Habe den Pfad und Blattnamen wie du geschrieben hast geändert, leider bekomme ich aber bei folgender Zeile (lt. Debu-Modus) schon einen Fehler: Set XL = CreateObject("Excel.Application")
Um genauer zu sein: Run-time error 429
Irgendwie dürfte er das Excel nicht öffnen können (Version: Excel 2016) oder er hängt sich dann gleich auf.
Weisst du an was das liegen könnte? Muss die Datei existieren?
Kommt die Endung, sprich Dateityp, auch in den Pfad&Dateiname mit rein, und wenn ja, muss es ein xlsm sein oder ein anderes?

LG

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

xerxses
Mitglied
Laufbursche


Sehen Sie sich das Profil von xerxses an!   Senden Sie eine Private Message an xerxses  Schreiben Sie einen Gästebucheintrag für xerxses

Beiträge: 130
Registriert: 06.09.2011

IV 2018
ACADM 2018

erstellt am: 28. Okt. 2017 17:40    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Traxtormer 10 Unities + Antwort hilfreich


vbaVerweise-xerxses.JPG

 
ja die angegebene Datei muss existieren. es muss keine xlsm sein. hauptsache eine Excel-Datei und ja die Endung sollte mit rein.

das hat allerdings mit dem Fehler nix zu tun. weil die Zeile ja noch vor der zum Öffnen der Datei ist.
schau mal bitte im VBA Editor/Extras/Verweise ob die selben Verweise wie bei mir angeklickt sind. siehe Bild

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Traxtormer
Mitglied



Sehen Sie sich das Profil von Traxtormer an!   Senden Sie eine Private Message an Traxtormer  Schreiben Sie einen Gästebucheintrag für Traxtormer

Beiträge: 59
Registriert: 12.04.2016

Windows 10 64-bit / Inventor Professional 2023

erstellt am: 29. Okt. 2017 18:26    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


2017-10-29_182459.jpg

 
Hello,

nein, leider find ich nicht mal die "Microsoft Forms..." bei mir!
Anbei mal ein Screenshot.
Funktioniert leider immer noch nicht! :-/

LG

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

xerxses
Mitglied
Laufbursche


Sehen Sie sich das Profil von xerxses an!   Senden Sie eine Private Message an xerxses  Schreiben Sie einen Gästebucheintrag für xerxses

Beiträge: 130
Registriert: 06.09.2011

IV 2018
ACADM 2018

erstellt am: 29. Okt. 2017 19:55    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Traxtormer 10 Unities + Antwort hilfreich

Runtime Error 429 - ActiveX Component Can't Create Object

falls das der Fehler ist dann google das mal bitte.
ich bin raus.

bitte Bescheid geben, falls du zur Lösung kommst.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Traxtormer
Mitglied



Sehen Sie sich das Profil von Traxtormer an!   Senden Sie eine Private Message an Traxtormer  Schreiben Sie einen Gästebucheintrag für Traxtormer

Beiträge: 59
Registriert: 12.04.2016

Windows 10 64-bit / Inventor Professional 2023

erstellt am: 16. Nov. 2017 08:26    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo xerxes!

Nach Foren lesen und späterer kompletter Neuinstallation von Windows, Office & Inventor bekomme ich immer noch den selben Fehler (429, wie erwähnt).
Ich gebe auf!

Hat jemand eine Vorlage um per Makro ein xml in Excel einzulesen??

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2024 CAD.de | Impressum | Datenschutz