Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor VBA
  Stückliste Sortieren

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:  Stückliste Sortieren (1479 mal gelesen)
Bluejay
Mitglied
Ingenieur


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

Beiträge: 198
Registriert: 14.05.2007

Inventor 2011 for Simulation<P>Microsoft Windows XP Professional<P>Dell Precision T3400
Intel(R) Core(TM)2 Duo CPU
E6750 @2,66 GHz
3,00 GB RAM

erstellt am: 04. Jul. 2014 08:20    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

Guten Morgen zusammen,
ich suche eine kleine Unterstützung für ein Macro. Ich möchte gernen die idw Stückliste nach Nummer sotieren. Es sollen aber nur die Zeilen sotiert werden, die auch eine Positionsnummer haben. Wir fügen in unsere Stücklisten Benutzerdefinierte Bauteile ein und diese sollen immer am Ende/ unten auf der Liste bleiben. Damit wir erkennen das es sich um solche handelt, tauschen wir immer die Positionsnummer mit einem Strich aus: Also könnte das eine Erkennung sein, das diese nicht mit sotiert werden?

So weit bin ich mit dem Macro bisher:


Public Sub StückSort()

Dim oDoc As DrawingDocument
Set oDoc = ThisApplication.ActiveDocument

Dim oPartsList As PartsList
Set oPartsList = oDoc.ActiveSheet.PartsLists.Item(1)

Dim sPartsListSortString1 As String
    sPartsListSortString1 = "Nummer"

Call oPartsList.Sort(sPartsListSortString1, True)
Call oPartsList.Renumber

End Sub


Für alle hilfe bedanke ich mich schon im voraus

MFG


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

BlueJay

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: 05. Jul. 2014 22:43    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 Bluejay 10 Unities + Antwort hilfreich

Hallo

Es gibt keine direkte Möglichkeit die überschriebenen Zeilen beim Sortieren auszufiltern. Dein neu numerieren bügelt dir deine Überschreibungen platt. Probier mal so.

Code:
Option Explicit

Public Sub StückSort()

Dim oDoc As DrawingDocument
Set oDoc = ThisApplication.ActiveDocument

Dim oPartsList As PartsList
Set oPartsList = oDoc.ActiveSheet.PartsLists.Item(1)

Dim sPartsListSortString1 As String
sPartsListSortString1 = "Nummer"

Call oPartsList.Sort(sPartsListSortString1, False)

Dim i As Integer

For i = 1 To oPartsList.PartsListRows.Count
    If Not IsNumeric(oPartsList.PartsListRows.Item(i).Item(1)) Then Exit For
Next

Call oPartsList.Renumber

Dim j As Integer

For j = i To oPartsList.PartsListRows.Count
    oPartsList.PartsListRows.Item(j).Item("Nummer") = "-"
Next

End Sub


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

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

Bluejay
Mitglied
Ingenieur


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

Beiträge: 198
Registriert: 14.05.2007

Inventor 2011 for Simulation<P>Microsoft Windows XP Professional<P>Dell Precision T3400
Intel(R) Core(TM)2 Duo CPU
E6750 @2,66 GHz
3,00 GB RAM

erstellt am: 31. Jul. 2014 13: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

Danke für den Code, ich konnte aus Urlaubsgrüden nicht früher Antworten.
Eine Frage habe ich noch und zwar währe es möglich mit einem Code auch folgendes zu verwirklichen?

1.Sotierung nach Bauteilnummern von nur den Bauteilen die in der Liste eine Objektnummer unter 200 haben
2. Neu Nummerierung der benannten Nummern
3. Die anderen Bauteile (in diesem Falle Bauteile die nicht auf der Zeichnung physikalisch vorhanden sind / Benutzerdefinierte Bauteile sollten immer ganz unten in der Liste stehen und nicht mit in die Routine eingebunden werden

Ist dies auch möglich?

Für eine angepasste Routine oder andere Tips und Hilfe würde ich mich sehr freuen und jeztz schon bedanken

MFG

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

BlueJay

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

Bluejay
Mitglied
Ingenieur


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

Beiträge: 198
Registriert: 14.05.2007

Inventor 2011 for Simulation<P>Microsoft Windows XP Professional<P>Dell Precision T3400
Intel(R) Core(TM)2 Duo CPU
E6750 @2,66 GHz
3,00 GB RAM

erstellt am: 22. Aug. 2014 11:13    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

Guten Tag zusammen,
habe eine Lösung für mein Problem gefunden: Villeicht kann es ja jemand gebrauchen?

Das Programm sotiert und nummeriert nur die Komponenten die auch in der Baugruppe vorhanden sind. Benutzerdefinierte Komponenten (>200) werden ignoriert und am Ende der Liste aufgelistet.


Public Sub StückSortZeich()

Dim oDoc As DrawingDocument
Set oDoc = ThisApplication.ActiveDocument

Dim oPartsList As PartsList
Set oPartsList = oDoc.ActiveSheet.PartsLists.Item(1)

    For i = 1 To oPartsList.PartsListRows.Count
    oPartsList.PartsListRows.Item(i).Visible = True
    If (oPartsList.PartsListRows.Item(i).Item("Objekt")) > 199 Then oPartsList.PartsListRows.Item(i).Visible = False
    Next
   
        Dim sPartsListSortString1 As String
        sPartsListSortString1 = "Nummer"
        Call oPartsList.Sort(sPartsListSortString1, True)

            Call oPartsList.Renumber
            oPartsList.SaveItemOverridesToBOM

            For i = 1 To oPartsList.PartsListRows.Count
            oPartsList.PartsListRows.Item(i).Visible = True
            If (oPartsList.PartsListRows.Item(i).Item("Objekt")) < 199 Then oPartsList.PartsListRows.Item(i).Visible = True
            Next
 
            Dim sPartsListSortString2 As String
            sPartsListSortString2 = "Objekt"
            Call oPartsList.Sort(sPartsListSortString2, True)
 
End Sub


MFG

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

BlueJay

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