Hallo Zusammen,
@Bernd:
ja ich bin leider noch nicht ganz fit in VB(A), werde demnächst aber noch einen Kurs besuche.
Stimmt ich habe versehentlich die ersten beiden Zeilen ausserhalb der Routine geschrieben, da wird natürlich nichts abgearbeitet....habs geändert, Fehlermeldung erscheint dennoch.
ich möchte bei allen InstanceNamen, die beispielsweise den Text XXXXX enthalten den kompletten InstanceName mit der PartNumber ersetzen.
@Joe:
ich korrigiere, ist nicht fett gedruckt, sondern in GROßBUCHSTABEN geschrieben!
Fehlermeldung ist im Anhang.
Hier nochmal der momentane Makro-Code:
Sub CATMain()
SET REFP = PROD.REFERENCECOMPONENT
NEWSTR = INPUTBOX ("ZU ERSETZENDEN NAME/NUMMER IM INSTANCENAME", "SUCHE UND ERSETZE (ERSETZE)")
Set oMainProduct = CATIA.ActiveDocument.product
Dim oMainProducts As Products
Set oMainproducts = oMainProduct.Products
Umbenennen oMainProducts
End Sub
Sub Umbenennen(oProducts As Products)
Dim oPartName As String
Dim oName As String
Dim i As Long
IF INSTR(REFP.INSTANCENAME, ORIGSTR) THEN
For x = 1 to oProducts.Count
Set oInstance = oProducts.Item(x)
oNumber = oInstance.PartNumber
oName = oInstance.Name
i=0
Do
On Error Resume Next
i = i+1
If i>5000 Then ' Zahl soll angepasst werden
Exit Do
end If
oInstance.Name = oNumber & "." & i
If Err.Number = 0 Then
Umbenennen oProducts.Item(x).ReferenceProduct.Products
Exit Do
ElseIf Err.Number = -2147467259 Then
Err.Clear
Err.Number = 0
Else
Exit Do
End If
Loop
If oInstance.Products.Count > 0 Then
Umbenennen oInstance.Products
End If
Next
END IF
End Sub
Ich vermute das mein Zugriff auf den InstanceName falsch ist.
(set refp = Prod.ReferenceComponent
und if instr(refp.InstanceName, origstr))
Ich hoffe Ihr könnt mir helfen.
Bestimmt ist es nur ein kleiner Leichtsinnsfehler, aber ich komm grad einfach nicht drauf.
Vielen Lieben Dank schon mal im voraus für eure Hilfe.
Gruß Svenja
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP