Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor VBA
  in Iprop Feld Geändert erreichen

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
Autor Thema:  in Iprop Feld Geändert erreichen (1414 mal gelesen)
Didikalle
Mitglied
Konstrukteur


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

Beiträge: 91
Registriert: 07.10.2011

Ich nutze Inventor 2016 mit dem BS Win 10

erstellt am: 06. Jan. 2016 14:34    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


iprop-geaendert.JPG

 
Hallo Zusammen
ich möchte gerne das Datum im Feld "Geändert" in Ipropertie erreichen. Dieses Datum soll in einer bestehenden VBA eingebunden werden. Wie muss der Code aussehen?
Übrigens alles Gute und viel Erfolg im neuen Jahr.

Gruß Didi

------------------
Didi

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

noctis79
Mitglied
Konstrukteur/ CAD-Administrator


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

Beiträge: 164
Registriert: 07.10.2009

Inventor Pro 2017
Cideon Workspace

erstellt am: 07. Jan. 2016 11:33    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 Didikalle 10 Unities + Antwort hilfreich

Hi,

kannst Dir ja mal alle iProps auslesen lassen.

Code:
Sub Props()

Dim odoc As Inventor.Document
Set odoc = ThisApplication.ActiveDocument

  Dim oPropertySet As PropertySet
  Dim oProp As Property
    For Each oPropertySet In odoc.PropertySets
        For Each oProp In oPropertySet
            Debug.Print oPropertySet.Name & " - " & oProp.Name & " - " & oProp.Value
        Next
    Next
 
End Sub


Glaube aber nicht, das da was in den iProperties steht.
Versuchs mal mit

Code:
msgbox FileDateTime(odoc.FullFileName)

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

Didikalle
Mitglied
Konstrukteur


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

Beiträge: 91
Registriert: 07.10.2011

Ich nutze Inventor 2016 mit dem BS Win 10

erstellt am: 07. Jan. 2016 14: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

Hi,
die Box zeigt mir den richtigen Wert an. Ich habe nun versucht, den Wert FileDateTime in meinem Code unterzubringen, was allerdings nicht klappt. Hier der Ausschnitt, wobei Dim u und Set oProp3 neu eingebunden wurden. Wahrscheinlich ist "Inventor General Information" nicht richtig
Code:
Dim i As Property
Dim e As Property
Dim u As Property
Dim oDescription As String
Dim oTitle As String
Dim oAuthor As String
Dim oFileDateTime As String
Dim oPartNumber As String
Dim oRevision As String
Dim oProject As String
Dim oCreationDate As String
Set oProp = odoc.PropertySets.Item("Design Tracking Properties")
Set oProp2 = odoc.PropertySets.Item("Inventor Summary Information")
Set oProp3 = odoc.PropertySets.Item("Inventor General Information")

For Each i In oProp
If i.DisplayName = "Bauteilnummer" Then
oPartNumber = i.Expression
ElseIf i.DisplayName = "Erstellungsdatum" Then
oCreationDate = i.Expression
    End If
    If i.DisplayName = "Projekt" Then
    oProject = i.Expression
    ElseIf i.DisplayName = "Konstrukteur" Then
    oDesigner = i.Expression
    End If
Next

For Each e In oProp2
If e.DisplayName = "Titel" Then
oTitle = e.Expression
    ElseIf e.DisplayName = "Autor" Then
oAuthor = e.Expression
End If
Next

For Each u In oProp3
    If u.DisplayName = "Geändert" Then
    oFileDateTime = u.Expression
    End If
    Next


------------------
Didi

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

noctis79
Mitglied
Konstrukteur/ CAD-Administrator


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

Beiträge: 164
Registriert: 07.10.2009

Inventor Pro 2017
Cideon Workspace

erstellt am: 07. Jan. 2016 17:03    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 Didikalle 10 Unities + Antwort hilfreich

Hi,

Code:
For Each u In oProp3
    If u.DisplayName = "Geändert" Then
    oFileDateTime = u.Expression
    End If
    Next

Kannst Du komplett weglassen.

FileDateTime ist eine eigene VB- Funktion.

Schreib doch einfach

Code:
oFileDateTime = FileDateTime(odoc.FullFileName)

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

bkrüger
Mitglied
Konstrukteur


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

Beiträge: 51
Registriert: 14.09.2014

Win10 IV2018 Vault2018-WG

erstellt am: 07. Jan. 2016 17:22    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 Didikalle 10 Unities + Antwort hilfreich

Hallo Didi
Sub Setze_Iprop_Erstellungsdatum()
Dim ddate As Date
' wenn Datei noch nicht gespeichert wurde:
If ThisApplication.ActiveDocument.FileSaveCounter = 0 Then
ddate = Now
Else
'sonst Zeit von Datei
ddate = FileDateTime(ThisApplication.ActiveDocument.FullFileName)
End If
'und schreiben:
ThisApplication.ActiveDocument.PropertySets("Design Tracking Properties").Item("Creation Time").Value = ddate
End Sub
'...alles ohne Gewähr und errorhandling
Boris

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

bkrüger
Mitglied
Konstrukteur


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

Beiträge: 51
Registriert: 14.09.2014

Win10 IV2018 Vault2018-WG

erstellt am: 07. Jan. 2016 17:25    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 Didikalle 10 Unities + Antwort hilfreich

Sorry, Code-Tags vergessen...
Code:

Sub Setze_Iprop_Erstellungsdatum()
Dim ddate As Date
' wenn Datei noch nicht gespeichert wurde:
If ThisApplication.ActiveDocument.FileSaveCounter = 0 Then
ddate = Now
Else
'sonst Zeit von Datei
ddate = FileDateTime(ThisApplication.ActiveDocument.FullFileName)
End If
'und schreiben:
ThisApplication.ActiveDocument.PropertySets("Design Tracking Properties").Item("Creation Time").Value = ddate
End Sub

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

Didikalle
Mitglied
Konstrukteur


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

Beiträge: 91
Registriert: 07.10.2011

Ich nutze Inventor 2016 mit dem BS Win 10

erstellt am: 08. Jan. 2016 10:05    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,
es sind oft die einfachen Dinge, die man übersieht. Mit der VB-Funktion von Noctis79 hat es funktioniert - Danke. Auch dir, bkrüger mein Dank. Ich wollte aber auf das Änderungsdatum zugreifen und nicht auf das Erstellungsdatum.
Dann hätte ich doch noch eine Frage. Wie kann ich bei dem Code oFileDateTime = FileDateTime(odoc.FullFileName) das Ergebnis so filtern, dass nur das Datum angezeigt wird?
Gruß Didi

------------------
Didi

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

bkrüger
Mitglied
Konstrukteur


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

Beiträge: 51
Registriert: 14.09.2014

Win10 IV2018 Vault2018-WG

erstellt am: 08. Jan. 2016 11: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 Didikalle 10 Unities + Antwort hilfreich

Ok, dann so:
Code:

Sub Setze_Iprop_Aenderungsdatum()

Dim oFSO As New FileSystemObject  ' ggf. Verweis setzen (?)
Dim ofil As Object
Dim strDateiname As String
Dim ddate As Date
Dim strdate As String
strDateiname = ThisApplication.ActiveDocument.FullFileName
' kommentarlos raus, wenn Datei nicht existiert:
If Not oFSO.FileExists(strDateiname) Then Exit Sub
'Object init:
Set ofil = oFSO.GetFile(strDateiname)
'ddate = ofil.DateCreated  ' Datei erzeugt
ddate = ofil.DateLastModified ' Datei geändert
' die gewünschte Formatierung:
strdate = Format(ddate, "dd.mm.yyyy")
'und Iprop schreiben:
ThisApplication.ActiveDocument.PropertySets("Design Tracking Properties").Item("Creation Time").Value = strdate
End Sub



wie immer: ohne Gewähr, eingeschränktes Errorhandling
Klar, das geht möglicherweise auch effizienter.

Boris

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



Leiter (m/w/d) Konstruktion

Verantwortung übernehmen. Zukunft gestalten. Und die eigenen Ziele übertreffen.
Das ist FEIN.

Wir, die C. & E. Fein GmbH, suchen ab sofort für unseren Bereich Innovation eine/n

Leiter (m/w/d) Konstruktion

Wir gehen neue Wege ? Sie auch? Seit über 150 Jahren treiben uns die Entwicklung, Herstellung und Vermarktung von Elektrowerkzeugen in Spitzen- qualität wie einen Hochleistungsmotor an....

Anzeige ansehenTeamleitung, Gruppenleitung
Didikalle
Mitglied
Konstrukteur


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

Beiträge: 91
Registriert: 07.10.2011

Ich nutze Inventor 2016 mit dem BS Win 10

erstellt am: 08. Jan. 2016 15:18    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 bkrüger,
ich konnte die Formatierung aus deinem Code für mich umsetzen. Jetzt ist alles perfekt. Besten Dank

------------------
Didi

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