Hallo,
wir haben in unserem Anwendungsprojekt VBA ein Modul das für die Berechnung der Stückzahlen in der Teileliste auf der Zeichnung verwendet wird, um aus kalkulierter Stückzahl und Überstücken die bestellte Menge zu errechnen.
Code:
Dim drawing As DrawingDocument
Dim sheet As sheet
Dim pList As PartsList
Dim pListRow As PartsListRow
Dim pListCell As PartsListCell
Dim cellIndex As Integer
Dim rowIndex As Integer
Dim columnIndex As Integer
Sub Stückzahlen()
Set drawing = ThisApplication.ActiveDocument
For Each sheet In drawing.Sheets
For Each pList In sheet.PartsLists
For Each pListRow In pList.PartsListRows
pListRow.ITEM(5).Static = False
If pListRow.ITEM(4) = "" Then
pListRow.ITEM(5) = pListRow.ITEM(3)
End If
If pListRow.ITEM(4) = "-" Then
pListRow.ITEM(5) = pListRow.ITEM(3)
End If
If pListRow.ITEM(5) = "" Then
If pListRow.ITEM(3).Value > " " Then
pListRow.ITEM(5).Value = CLng(pListRow.ITEM(3).Value) + CLng(pListRow.ITEM(4).Value)
ElseIf pListRow.ITEM(3).Value = "*mm" Then
pListRow.ITEM(5).Value = pListRow.ITEM(3).Value
End If
End If
Next
Next
Next
End Sub
Das der Code nicht einwandfrei ist, ist mir klar :P. es fehlt vorallem auch ein "on Error" falls was schiefgeht.
Die eigentliche Frage ist jetzt: ist es möglich das VBA nur für die Zeilen auszufühen in denen sich "pListRow.ITEM(3)" (also kalkulierte Anzahl) geändert hat. da es bei größeren Stücklisten bis zu 1 min dauert bis er alle Zeilen durchgegangen ist um sie neu zu berechnen.
Noch besser als diese Lösung auf der Zeichnung wäre natürlich die Lösung gleich in der Baugruppe in der Stückliste. Das die Bestellte Stückzahl sich sofort aus kalkuliert und Überstücken bildet. Allerdings fehlt mir das VBA wissen um hierfür eine Lösung zu finden.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP