Hot News aus dem CAD.de-Newsletter:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Inventor VBA
  Benutzer iProperties in Excel Vorlage schreiben

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
Autor Thema:   Benutzer iProperties in Excel Vorlage schreiben (152 mal gelesen)
Goose
Mitglied
Maschinenbautechniker / geb. Zerspanungsmechaniker Fachrichtung Frästechnik


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

Beiträge: 188
Registriert: 29.03.2007

IV2017 R4.1
CATIA V6 R2013x

erstellt am: 09. Jul. 2019 15:42    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,

ich möchte bestimmte iProperties eines Bauteils in eine  Celle einer Excel Vorlage speichern.
Das Öffnen der Vorlagedatei funktioniert aber ich bekomme das Property nicht in eine bestimmte Celle übertragen.
Könnte mir da jemand ein Beispiel zur verfügen stellen!?

Danke und Gruß

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

KraBBy
Mitglied
Maschinenbau-Ingenieur


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

Beiträge: 220
Registriert: 19.09.2007

Inventor Professional 2016
Win7

erstellt am: 09. Jul. 2019 16:56    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 Goose 10 Unities + Antwort hilfreich

es wären mehr Details wünschenswert. Wie wird die Exceldatei geöffnet? Welchen Code hast Du bisher? ...
(Beispiel habe ich keines parat, deshalb meine Fragen)

------------------
Gruß KraBBy

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

Goose
Mitglied
Maschinenbautechniker / geb. Zerspanungsmechaniker Fachrichtung Frästechnik


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

Beiträge: 188
Registriert: 29.03.2007

IV2017 R4.1
CATIA V6 R2013x

erstellt am: 10. Jul. 2019 10:48    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

Zitat:
Original erstellt von KraBBy:
es wären mehr Details wünschenswert. Wie wird die Exceldatei geöffnet? Welchen Code hast Du bisher? ...
(Beispiel habe ich keines parat, deshalb meine Fragen)



Code:
Public Sub TNR_To_Excel()
   
  Dim oApp As Inventor.Application
  Set oApp = ThisApplication

  Dim oDoc As Inventor.Document
  Set oDoc = oApp.ActiveDocument

      ' Obtain the PropertySets collection object
    Dim oPropSets As PropertySets
    Set oPropSets = oDoc.PropertySets

    Dim oProp As Property
    For Each oProp In oDoc.PropertySets.Item("inventor user defined properties")
        If oProp.name = "TNR" Then
        iPropTextTNR = oProp.value
        End If
      Next
   
    If ThisApplication.ActiveDocumentType <> kAssemblyDocumentObject And _
        ThisApplication.ActiveDocumentType <> kPartDocumentObject Then
        MsgBox "Nur für Bauteile oder Baugruppen vefügbar", vbCritical
        Exit Sub
    End If
   
 
    Dim XL As Object
    Dim xlWB As Object
    Dim xlWS As Object
 
   
    On Error Resume Next
    Set XL = GetObject("Excel.Application")
    If err.Number Then
        ' Excel läuft noch nicht - starten
        err.Clear
        On Error Resume Next
     
        Set XL = CreateObject("Excel.Application")
     
     
        If err.Number Then
            err.Clear
            MsgBox "Kann Excel nicht öffnen."
            Exit Sub
       
          End If
         
  'Stüchlistenvorlage öffnen aus Verzeichnis
  'Pfad der Projektdatei suchen
  Dim ProjektPfadtxt As String
  ProjektPfadtxt = ThisApplication.FileLocations.FileLocationsFile
  Dim Index As Long
  Index = InStrRev(ProjektPfadtxt, "\")
  ProjektPfadtxt = Left$(ProjektPfadtxt, Index)


'Stücklistenvorlage aus aktiven Projekt öffnen
    Set xlWB = XL.Workbooks.Open(ProjektPfadtxt + "Parameter - Excel\Vorlage-Kostenkalkulation.xlsm")
    If err.Number Then
    MsgBox "Kann Stücklistenvorlage nicht öffnen."
    Exit Sub
    End If
         
     
         
End If

    'Zellen beschreiben
   
    iRow = 1
    xlWS.Cells(iRow, 1).value = "iPropTextTNR"
   
    'save this XL document, default to Inventor location and name
    sDocName = ThisApplication.ActiveDocument.FullFileName
    If sDocName = "" Then
        sDocName = "c:\temp\x"
    Else
        sDocName = Mid(sDocName, 1, Len(sDocName) - 4)
    End If
    If Dir(sDocName & ".xlsm") <> "" Then
        i = 1
        Do While Dir(sDocName & "_" & i & ".xlsm") <> ""
            i = i + 1
        Loop
        sDocName = sDocName & "_" & i
    End If
    xlWB.SaveAs filename:=sDocName
   
    'Speichern
Dim Stueli_Name As String
Dateiname = Left$(ThisApplication.ActiveDocument.FullFileName, Len(ThisApplication.ActiveDocument.FullFileName) - 4) + ".xlsm"
xlWB.SaveAs Dateiname


XL.Visible = True

'Excel schließen
'XL.Application.Quit

'Verbindung zu Excel lösen
Set xlWS = Nothing
Set xlWB = Nothing
Set XL = Nothing


End Sub


Bei "'Zellen beschreiben" wollte ich die TNR in die Excel Tabelle übergeben....

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

KraBBy
Mitglied
Maschinenbau-Ingenieur


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

Beiträge: 220
Registriert: 19.09.2007

Inventor Professional 2016
Win7

erstellt am: 10. Jul. 2019 12:27    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 Goose 10 Unities + Antwort hilfreich

xlWS (Excel Arbeitsblatt) war nothing, das sollte es schon gewesen sein

Code:
'KraBBy ergänzt (xlWS war nicht gesetzt, wegen Fehlerbehandlung nicht aufgefallen)
    On Error GoTo 0
    Set xlWS = xlWB.worksheets.Item(1)

    'Zellen beschreiben
  Dim iRow As Integer  'KraBBy ergänzt
    iRow = 1
'...


Ergänzend: ich bin ein Freund von "Option Explicit", damit wird die explizite Deklaration von Variablen nötig...

------------------
Gruß KraBBy

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

Goose
Mitglied
Maschinenbautechniker / geb. Zerspanungsmechaniker Fachrichtung Frästechnik


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

Beiträge: 188
Registriert: 29.03.2007

IV2017 R4.1
CATIA V6 R2013x

erstellt am: 10. Jul. 2019 13:02    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


Zitat:
Original erstellt von KraBBy:
xlWS (Excel Arbeitsblatt) war nothing, das sollte es schon gewesen sein

Code:
'KraBBy ergänzt (xlWS war nicht gesetzt, wegen Fehlerbehandlung nicht aufgefallen)
    On Error GoTo 0
    Set xlWS = xlWB.worksheets.Item(1)

    'Zellen beschreiben
   Dim iRow As Integer  'KraBBy ergänzt
    iRow = 1
'...


Ergänzend: ich bin ein Freund von "Option Explicit", damit wird die explizite Deklaration von Variablen nötig...



Hallo KraBBy,

vielen Dank!

Unities sind raus....

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

Goose
Mitglied
Maschinenbautechniker / geb. Zerspanungsmechaniker Fachrichtung Frästechnik


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

Beiträge: 188
Registriert: 29.03.2007

IV2017 R4.1
CATIA V6 R2013x

erstellt am: 11. Jul. 2019 14:59    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

Code:
If oProp.name = "TotalMass" Then
        iPropTextTotalMass = oProp.value
        End If
      Next
   
    If ThisApplication.ActiveDocumentType <> kAssemblyDocumentObject And _
        ThisApplication.ActiveDocumentType <> kPartDocumentObject Then
        MsgBox "Nur für Bauteile oder Baugruppen vefügbar", vbCritical
        Exit Sub
    End If
   
 
    Dim XL As Object
    Dim xlWB As Object
    Dim xlWS As Object
 
   
    On Error Resume Next
    Set XL = GetObject("Excel.Application")
    If err.Number Then
        ' Excel läuft noch nicht - starten
        err.Clear
        On Error Resume Next
     
        Set XL = CreateObject("Excel.Application")
     
     
        If err.Number Then
            err.Clear
            MsgBox "Kann Excel nicht öffnen."
            Exit Sub
       
          End If
         
  'Stüchlistenvorlage öffnen aus Verzeichnis
  'Pfad der Projektdatei suchen
  Dim ProjektPfadtxt As String
  ProjektPfadtxt = ThisApplication.FileLocations.FileLocationsFile
  Dim Index As Long
  Index = InStrRev(ProjektPfadtxt, "\")
  ProjektPfadtxt = Left$(ProjektPfadtxt, Index)


'Stücklistenvorlage aus aktiven Projekt öffnen
    Set xlWB = XL.Workbooks.Open(ProjektPfadtxt + "Parameter - Excel\Vorlage-Kostenkalkulation.xlsm")
    If err.Number Then
    MsgBox "Kann Stücklistenvorlage nicht öffnen."
    Exit Sub
    End If
         
     
         
End If

    On Error GoTo 0
    Set xlWS = xlWB.worksheets.Item(1)

    'Zellen beschreiben
   
    Dim iRow As Integer
   

    iRow = 5
    xlWS.Cells(iRow, 5).value = iPropTextLaenge
    iRow = 6
    xlWS.Cells(iRow, 5).value = iPropTextBreite
    iRow = 7
    xlWS.Cells(iRow, 5).value = iPropTextHoehe
    iRow = 9
    xlWS.Cells(iRow, 5).value = iPropTextTotalMass


Ich habe noch ein Problem welches ich nicht zuordnen kann!
Das Property "TotalMass" wird in den Benutzerdefinierten iProperties mit z.B. 0,534 oder 1,278 hinterlegt.
Bei der Übergabe in Excel wird ab einem Wert von über 1 also z.B. 1,278 nach Excel 1.278 geschrieben.
Wie muss die Formatierung laufen damit auf der Excel Seite auch die 1,278 ankommen?
Die Zellenformatierung in der Excel Vorlage zu ändern führt nicht zum gewünschten Ergebnis!

Danke schon mal!!!

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

KraBBy
Mitglied
Maschinenbau-Ingenieur


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

Beiträge: 220
Registriert: 19.09.2007

Inventor Professional 2016
Win7

erstellt am: 11. Jul. 2019 18:30    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 Goose 10 Unities + Antwort hilfreich

Das hat wohl mit dem dezimaltrennzeichen auf windowsebene zu tun. Ich vermute, du hast "," eingestellt. Entsprechend wird "." als tausend interpretiert. (oder eben umgekehrt)
Außerdem ist wichtig in welchem Datentyp die variable iPropTextTotalMass vorliegt. Hast du sie deklariert? Ist das auch ein Benutzer iProp? Die sind ja immer Text, oder?

Je nachdem, könntest du versuchen, Punkt u Komma zu tauschen
iPropTextTotalMass = Replace(iPropTextTotalMass, ".", ",")

U.u. Kommt im Excel auch etwas anderes an, wenn man nicht in die Eigenschaft .Value schreibt sondern .Formula. Evtl auch einen Versuch wert...

Das alles, ohne es ausprobiert zu haben.

------------------
Gruß KraBBy

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

Goose
Mitglied
Maschinenbautechniker / geb. Zerspanungsmechaniker Fachrichtung Frästechnik


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

Beiträge: 188
Registriert: 29.03.2007

IV2017 R4.1
CATIA V6 R2013x

erstellt am: 12. Jul. 2019 07:41    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

Zitat:
Original erstellt von KraBBy:
Das hat wohl mit dem dezimaltrennzeichen auf windowsebene zu tun. Ich vermute, du hast "," eingestellt. Entsprechend wird "." als tausend interpretiert. (oder eben umgekehrt)
Außerdem ist wichtig in welchem Datentyp die variable iPropTextTotalMass vorliegt. Hast du sie deklariert? Ist das auch ein Benutzer iProp? Die sind ja immer Text, oder?

Je nachdem, könntest du versuchen, Punkt u Komma zu tauschen
iPropTextTotalMass = Replace(iPropTextTotalMass, ".", ",")

U.u. Kommt im Excel auch etwas anderes an, wenn man nicht in die Eigenschaft .Value schreibt sondern .Formula. Evtl auch einen Versuch wert...

Das alles, ohne es ausprobiert zu haben.



iPropTextTotalMass = Replace(iPropTextTotalMass, ",", ".") brachten den gewünschten Erfolg!
Vielen Dank.....

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)2019 CAD.de | Impressum | Datenschutz