Hallo,
ich bins mal wieder und hab ein Problem in VBA.
Habe versucht ein Makro zu schreiben, welches den InstanzeName umbenennt.
Hierfür gibt es ein Texteingabefenster, in das der Test, der ersetzt werden soll eingegeben wird Eingabe zB. "XXXX", dann erscheint ein weiteres Eingabefenster in der der neue Text eingegeben wird (Bsp.Eingabe: "YYYY")und nun soll bei allen InstanceName eines Produkts XXXX mit YYYY ersetzt werden.
Ich habe das gleiche Makro zum Umbenenne der PartNumber geschrieben, dort funktioniert es einwandfrei(Makro PartNumber siehe unten).Dieses habe ich hergenommen und will es so abändern, das anstatt der PartNumber der InstanceName geändert wird.
Makro zum Umbenennen der PartNumber (funktioniert einwandfrei):
Sub traverse(Prod, origstr, newstr)
set refp = Prod.ReferenceProduct
if instr(refp.PartNumber, origstr) then
newpnum = Replace(refp.PartNumber, origstr, newstr)
refp.PartNumber = newpnum
end if
Set prods = Prod.Products
pc = prods.Count
If pc > 0 then
For i = 1 to pc
traverse prods.Item(i), origstr, newstr
Next
End If
End Sub
Sub CATMain()
Set actProd = CATIA.ActiveDocument.Product
origstr = Inputbox ("Eingeben welcher Name oder Nummer ersetzt werden soll!!! ", "Suche und Ersetze (Suche)")
newstr = Inputbox ("Zu ersetzenden Namen oder Nummer eingeben", "Suche und Ersetze (Ersetze)")
traverse actProd, origstr, newstr
End Sub
Abgeändertes Makro zum Umbenennen des InstanceNames:
Sub traverse(Prod, origstr, newstr)
set refp = Prod.ReferenceProduct
if instr(refp.InstanceName, origstr) then
newpnum = Replace(refp.InstanceName, origstr, newstr)
refp.InstanceName = newpnum
end if
Set prods = Prod.Products
pc = prods.Count
If pc > 0 then
For i = 1 to pc
traverse prods.Item(i), origstr, newstr
Next
End If
End Sub
Sub CATMain()
Set actProd = CATIA.ActiveDocument.Product
origstr = Inputbox ("Eingeben welcher Name oder Nummer ersetzt werden soll!!! ", "Suche und Ersetze (Suche)")
newstr = Inputbox ("Zu ersetzenden Namen oder Nummer eingeben", "Suche und Ersetze (Ersetze)")
traverse actProd, origstr, newstr
End Sub
Leider funktioniert das nicht. Die beiden Eingabefelder erscheinen, aber dann kommt Fehlermeldung (siehe Anhang).
Kann mir bitte nochmal jemand helfen?
Gruß Svenja
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP