Merci beaucoup pour l'astuce. J'avais déjà avancé sur le sujet, avec des boucles du type: For Each PartDocument In CATIA.Documents On Error Resume Next PartDocument.ExportData nomrep & "\" & PartDocument.Product.PartNumber & ".CATPart", "CATPart" Next For Each ProductDocument In CATIA.Documents On Error Resume Next ProductDocument.ExportData nomrep & "\" & ProductDocument.Product.PartNumber & ".CATProduct", "CATProduct" Next Cette boucle permétait de sauter les erreurs d'enregistrements des products en part et inversement, même si, en soit elle n'était pas très belle... Ce que tu m'as dit semble fonctionner, à un détail près: je n'arrive pas à changer le "productdocument.name", qui ne semble pas correspondre au product.partnumber. En effet, effectuant plusieurs changements de partnumber et plusieurs enregistrements à la suite, dans une boucle, les product.name sont similaires aux noms de fichier du départ Cela doit provenir des multiples confusions que je fais entre les productdocument, les product, les products....c'est pas trop clair dans ma tête... Sinon, au cas où, pour récupérer l'extension d'un product ou part: ext = ProductDocument.Name ext = StrReverse(ext) o = InStr(1, ext, ".") ext = Left(ext, o - 1) ext = StrReverse(ext) Merci pour l'aide!