| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY WIRD VON NVIDIA ZUM HÄNDLER DES JAHRES GEWÄHLT, eine Pressemitteilung
|
Autor
|
Thema: Eigenschaft via VBA zu Stückliste hinzufügen (1193 mal gelesen)
|
Jaschade Mitglied
Beiträge: 4 Registriert: 06.07.2015
|
erstellt am: 07. Jul. 2015 10:09 <-- editieren / zitieren --> Unities abgeben:
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
Beiträge: 2580 Registriert: 15.11.2006 Windows 10 x64, AIP 2020-2025
|
erstellt am: 07. Jul. 2015 10:52 <-- editieren / zitieren --> Unities abgeben: Nur für Jaschade
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 ExplicitSub 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
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 / zitieren --> Unities abgeben: Nur für Jaschade
|
Jaschade Mitglied
Beiträge: 4 Registriert: 06.07.2015
|
erstellt am: 07. Jul. 2015 11:19 <-- editieren / zitieren --> Unities abgeben:
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
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 / zitieren --> Unities abgeben: Nur für Jaschade
|
Jaschade Mitglied
Beiträge: 4 Registriert: 06.07.2015
|
erstellt am: 07. Jul. 2015 12:51 <-- editieren / zitieren --> Unities abgeben:
|
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2580 Registriert: 15.11.2006 Windows 10 x64, AIP 2020-2025
|
erstellt am: 07. Jul. 2015 16:02 <-- editieren / zitieren --> Unities abgeben: Nur für Jaschade
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
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 / zitieren --> Unities abgeben: Nur für Jaschade
|
Jaschade Mitglied
Beiträge: 4 Registriert: 06.07.2015
|
erstellt am: 08. Jul. 2015 12:07 <-- editieren / zitieren --> Unities abgeben:
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 |