Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor VBA
  Eigenschaft via VBA zu Stückliste hinzufügen

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:  Eigenschaft via VBA zu Stückliste hinzufügen (1189 mal gelesen)
Jaschade
Mitglied


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

Beiträge: 4
Registriert: 06.07.2015

erstellt am: 07. Jul. 2015 10:09    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 liebes Forum,

ich soll zurzeit aus einer Vorhandenen Stückliste mit Objekt, Anzahl, Bauteilnummer und Beschreibung
die Bauteilnummer aus der Liste entfernen und den Titel an die gleiche Stelle hinzufügen. Mit dem Entfernen ist das auch kein Problem, aber irgendwie verstehe ich die Methode partslistcolumn.add nicht so ganz oder ich überseh etwas. Also die Funktion erwartet diese Parameter: Function Add(PropertyType As PropertyTypeEnum, [PropertySetId As String], [PropertyIdentifier], [TargetIndex As Long], [InsertBefore As Boolean = Wahr]) As PartsListColumn. Ich bin mir nur nicht sicher was der richtige PropertyTypeEnum hierfür ist und ob ich das mit dem PropertySetId As String korrekt mache,er spuckt entweder eine Fehlermeldung aus oder es ist nichts passiert beim rumprobieren. Bin über jede Hilfe dankbar    


Code:
[/CODE]
Sub Change_Column_PartList()

   
    Dim doc As DrawingDocument
    Set doc = ThisApplication.ActiveDocument
   
   
    Dim propsets As PropertySets
    Set propsets = doc.PropertySets
   
   
    Dim pl As PartsList
    Set pl = doc.ActiveSheet.PartsLists.Item(1)

      
    Dim plcs As PartsListColumns
    Set plcs = pl.PartsListColumns   
   

    Dim i As Integer
    For i = 1 To plcs.Count - 1
       
        Dim plc As PartsListColumn
        Set plc = plcs.Item(i)

        If plc.Title = "BAUTEILNUMMER" Then
           
            plcs.Item(i).Remove           
            plcs.Item(i) = plcs.Add(kFilenamePartsListProperty, ["Item 3"], [3], [True])
           
        End If      
    Next   
         
End Sub
[CODE]


[Diese Nachricht wurde von Jaschade am 07. Jul. 2015 editiert.]

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

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik




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

Beiträge: 2166
Registriert: 15.11.2006

Windows 10 x64, AIP 2022

erstellt am: 07. Jul. 2015 10:52    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 Jaschade 10 Unities + Antwort hilfreich

Hallo

Nö, so geht das nicht.
Der PropertyTypeEnum ist in dem Fall kFileproperty. Das zwingt zur Angabe von
PropertySetID "{F29F85E0-4FF9-1068-AB91-08002B27B3D9}" und PropertyIdentifier "2".

Probier mal:

Code:
Option Explicit

Sub Change_Column_PartList()

  
    Dim doc As DrawingDocument
    Set doc = ThisApplication.ActiveDocument
  
  
    Dim propsets As PropertySets
    Set propsets = doc.PropertySets
  
  
    Dim pl As PartsList
    Set pl = doc.ActiveSheet.PartsLists.Item(1)

     
    Dim plcs As PartsListColumns
    Set plcs = pl.PartsListColumns
  

    Dim i As Integer
    For i = 1 To plcs.Count - 1
      
        Dim plc As PartsListColumn
        Set plc = plcs.Item(i)

        If plc.Title = "BAUTEILNUMMER" Then
          
            plcs.Item(i).Remove
            Call plcs.Add(kFileProperty, "{F29F85E0-4FF9-1068-AB91-08002B27B3D9}", 2, i, True)
          
        End If
    Next
        
End Sub


------------------
MfG
Ralf

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

Chris 31
Mitglied
Konstrukteur und Mädchen für alles


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

Beiträge: 575
Registriert: 23.04.2013

Inventor 2013/2015
Windows 7 64 bit
16GB RAM
nVidia Quadro 600

erstellt am: 07. Jul. 2015 10: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 Jaschade 10 Unities + Antwort hilfreich

Da war der Ralf mal wieder schneller

------------------
MFG

Chris

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

Jaschade
Mitglied


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

Beiträge: 4
Registriert: 06.07.2015

erstellt am: 07. Jul. 2015 11:19    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

Hey,

das ging ja super schnell, danke euch beiden, hat direkt geklappt und ich war schon am Verzweifeln.
Könntet ihr mir noch sagen wo ich denn die PropertySetID herbekomme? im Objektkatalog finde ich beispielsweise nur "Const kFileProperty = 45569 (&HB201)."
Und passend dazu, kann ich irgendwo nachlesen wie die ganze PropertyTypeEnum's definiert sind, damit ich nächstes Mal weiß welches ich nehmen muss?   

AHHHHHH das mit der PropertySetID habe ich schon gesehen, so eine lange Zeichenfolge überlese ich gerne   , aber bleibt noch die Frage mit der Definition der PropertyTypeEnum's, ganz vielen Dank aber nochmal,das hat mir sehr geholfen!

Mfg Jascha

[Diese Nachricht wurde von Jaschade am 07. Jul. 2015 editiert.]

[Diese Nachricht wurde von Jaschade am 07. Jul. 2015 editiert.]

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

Chris 31
Mitglied
Konstrukteur und Mädchen für alles


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

Beiträge: 575
Registriert: 23.04.2013

Inventor 2013/2015
Windows 7 64 bit
16GB RAM
nVidia Quadro 600

erstellt am: 07. Jul. 2015 11:45    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 Jaschade 10 Unities + Antwort hilfreich

ich finde das hier immer ganz hilfreich im Umgang mit den Properties.

------------------
MFG

Chris

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

Jaschade
Mitglied


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

Beiträge: 4
Registriert: 06.07.2015

erstellt am: 07. Jul. 2015 12:51    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

Die Liste ist allerdings sehr hilfreich, gleich gebookmarked 

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

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik




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

Beiträge: 2166
Registriert: 15.11.2006

Windows 10 x64, AIP 2022

erstellt am: 07. Jul. 2015 16: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 Nur für Jaschade 10 Unities + Antwort hilfreich

Hallo

@Chris31

@Jaschade
Falls du noch nicht damit zu tun hattest, befasse dich mal mit dem Setzen von Haltepunkten, dem Definieren von Variablenüberwachungen und dem schrittweisen Ablaufen lassen von Makros.
Den PropertyTypeEnum habe ich mir so geholt:
- Teileliste mit manuell eingefügter Spalte "Titel" erstellt
- kleines Testmakro erstellt, das z.B. die Teileliste in Variable "pl" speichert
- Haltepunkt kurz hinter dem Zuweisen der Teileliste zu "pl"
- Überwachung von "pl" erstellen
- von "pl" aus im Überwachungsfenster nach unten zu dem Teilelistenspalten durchhangeln
- und sich den PropertyTypeEnum der Spalte Titel anschauen 

------------------
MfG
Ralf

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

Chris 31
Mitglied
Konstrukteur und Mädchen für alles


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

Beiträge: 575
Registriert: 23.04.2013

Inventor 2013/2015
Windows 7 64 bit
16GB RAM
nVidia Quadro 600

erstellt am: 08. Jul. 2015 08:17    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 Jaschade 10 Unities + Antwort hilfreich

Alter Schwede, Ralf!

Das ist ja Trick 17 mit durch den Rücken, über den Bauch ins Auge 

Aber die Vorgehensweise muss ich mir definitiv merken!

------------------
MFG

Chris

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



Plastics Engineer Life Cycle Management (m/w/d)

Die Unternehmensvision von QIAGEN ist es, Verbesserungen im Leben zu ermöglichen.
Wir begeistern uns für unsere Berufung, Wissenschaft und Gesundheitsversorgung entscheidend voranzubringen. Wir sind immer noch die Unternehmergesellschaft, als die wir begonnen haben, und haben heute eine Größe erreicht, die es uns ermöglicht, unsere ganze Kraft auf viele Initiativen und unsere weltweite Präsenz zu richten....

Anzeige ansehenKunststofftechnik
Jaschade
Mitglied


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

Beiträge: 4
Registriert: 06.07.2015

erstellt am: 08. Jul. 2015 12:07    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

Oh wow,
ich habe ne Weile gebraucht bis ich verstanden habe was du von mir wolltest, weil ich total im VBA-Modus war und auf dieses manuell nicht klargekommen bin, aber das funktioniert tatsächlich prächtig 

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