Attribute VB_Name = "FehlerhafteAbhängigkeiten" Option Explicit '(c) Event Engineering Jörgen Pisarz Berlin 2002 Sub Finden() Dim doc As AssemblyDocument Dim con As AssemblyConstraint Dim ErrCount As Integer 'Fehler übergehen On Error Resume Next 'arbeite nur im Assembly If ThisApplication.ActiveDocument.DocumentType = kAssemblyDocumentObject Then 'Alte MArkierung löschen NamenZurücksetzen 'Zähler auf Null ErrCount = 0 'Hole Dokumentobjekt Set doc = ThisApplication.ActiveDocument 'Gehe durch alle Abhängigkeiten For Each con In doc.ComponentDefinition.Constraints 'Wenn nicht ausgeschaltet If Not con.Suppressed Then 'versuche es auszuschalten con.Suppressed = True 'gelungen? If con.Suppressed Then 'Unterdrückung war erfolgreich, markiere und mache sie Rückgängig 'undo ThisApplication.TransactionManager.UndoTransaction 'Zähler ErrCount = ErrCount + 1 'rename con.Name = "!!!-" + Format(ErrCount, "000") + "-" + con.Name End If End If Next 'Meldung Select Case ErrCount Case 0 MsgBox "Kann nur einzelnen Fehler finden. Bitte Abhängigkeiten soweit unterdrücken, bis nur ein Fehler erzeugt wird." Case 1 MsgBox "Nur eine Fehlerursache gefunden. Diese Abhängigkeit verstößt gegen eine Kombination aus anderen Vorgaben." Case Else MsgBox Str(ErrCount) + " Abhängigkeiten gefunden, die den fehlerhaften Zustand erzeugen." End Select End If On Error GoTo 0 End Sub Sub NamenZurücksetzen() Dim doc As AssemblyDocument Dim con As AssemblyConstraint 'arbeite nur im Assembly If ThisApplication.ActiveDocument.DocumentType = kAssemblyDocumentObject Then 'Hole Dokumentobjekt Set doc = ThisApplication.ActiveDocument 'Gehe durch alle Abhängigkeiten For Each con In doc.ComponentDefinition.Constraints If Left(con.Name, 4) = "!!!-" Then con.Name = Mid(con.Name, 9) End If Next End If End Sub