'Déclaration des variables Dim ProductDoc As ProductDocument 'Déclare Document Catia Dim Product As Product 'Déclare Produit CATIA Dim AppExcel As Excel.Application 'Déclare application Excel Dim WbExcel As Excel.Workbook 'Déclare classeur Excel Dim WsExcel As Excel.Worksheet 'Déclare feuille Excel Dim d As Integer Dim Lg As Double Dim Cl As Double Dim XNameDoc Sub CATMain() Message1 = "Bonjour," & vbNewLine & _ "Macro CATIA V5 d'extraction de nomenclature produit et BoM," & vbNewLine & _ "développée par Thierry X (XXXXXXX)." & vbNewLine & _ "Me contacter via thierry.XXXXXXXX@XXXX.com en cas de problème." & vbNewLine & _ "Bonne journée." Message2 = "Le document actif n'est pas un CATProduct." MsgBox Message1, vbInformation, "Extract CATIA" 'Message avec icône d' information et titre Set ProductDoc = CATIA.ActiveDocument 'Vérification de doc actif If TypeName(ProductDoc) <> "ProductDocument" Then 'Condition de CATProduct non actif MsgBox Message2, vbCritical, "Avertissement" 'Message avec icône d' avertissement et titre si CATProduct non actif CATIA.Application.Visible = True End If If TypeName(ProductDoc) = "ProductDocument" Then 'Condition de CATProduct actif Call GnrlExcel 'Appel la procédure GnrlExcel End If End Sub Sub GnrlExcel() RepDoc = "H:\Macro CATIA V5\XXXXX\Base extract Nomenclature.xlsm" Set AppExcel = CreateObject("Excel.Application") 'Lancement application Excel Set WbExcel = AppExcel.Workbooks.Open(RepDoc) 'ouvre le fichier Exel désigné AppExcel.Visible = True 'Rendre la feuille Excel visible Call FeuilBoM 'Appel la procédure FeuilBoM End Sub Sub FeuilBoM() Sheets("BoM").Activate 'Active la feuille BoM Set ProductDoc = CATIA.ActiveDocument 'Vérification de CATProduct actif GetNextNode CATIA.ActiveDocument.Product End Sub Sub GetNextNode(ProductDoc As Product) For d = 1 To ProductDoc.Products.Count L = d + 5 Cl = 5 Set CurrentTreeNode = ProductDoc.Products.Item(d) XNameDoc = ProductDoc.Products.Item(d).Source Sheets("BoM").Activate 'Active la feuille BoM Cells(L, Cl).Select 'Sélectionne la cellule A9 Selection = XNameDoc 'Ajoute un texte à la cellule sélectionnée Next End Sub