                                                          'http://ww3.cad.de/foren/ubb/Forum137/HTML/001807.shtml#000006
Sub traverse(Prod, origstr, newstr)
  set refp = Prod.ReferenceProduct
  if instr(refp.Name, origstr) then
    newpname = Replace(refp.Name, origstr, newstr)
    refp.Name = newpname
  end if
  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