Catia – VBA Lister Références et Instances
Il y a 8 ans
Ce premier programme sert à lister tout les composants d’un assemblage ainsi que ces sous-assemblages en listant les éléments avec les références et instances :
Ci-dessous le programme tel que je l’ai écrit :
Explication :
Déclaration des variables publiques :
Cette procédure sert à déclarer une variable tout en lui affectant une valeur, ici la variable ASM sert à déclarer l’assemblage qui est affiché à l’écran :
Fonction DemAnalyse pour lancer les commandes qui vont exécuter le programme
ListeProduct renvoi à une commande avec comme attribut la variable ASM
Ci-dessous la commande ListeProduct, La variable ProduitReference as Product aura comme valeur ASM, c’est-à-dire l’assemblage affiché à l’écran.
For Each: lance une boucle (For Each = pour chaque), sur chaque élément trouvé dans l’assemblage
Next : renvoi au début de la boucle (Next = Prochain).
For Each SousReference In ProduitReference.Products : boucle chaque élément trouvé dans l’assemblage.
UserForm2.ListBox1.AddItem SousReference.PartNumber : Affiche le non de la référence de l’élément dans une liste (liste qu’il faudra créer dans une ‘form’)
Set ListesousProduct = SousReference.Products : à la variable ListesousProduct je lui donne la valeur de l’élément lister dans la boucle, ce qui me permet de faire une boucle sur cet élément en l’ajoutant à la commande ListeProduct, comme ci-dessous:
ListeProduct ListesousProduct
Si cet élément est un sous assemblage la commande va permettre de boucler sous tout les sous éléments.
La commande ListeShow, va afficher la Form avec les éléments listés
Pour ne pas lister les éléments en double :
Je vais trier les éléments en doubles en créant un tableau,
Pour déclarer mon tableau :
Dans la procédure j’ajoute une variable de type Booléen « True ou False », elle me permettra de définir si un élément existe déjà dans le tableau, elle sera déclaré False en début de procédure :
Ensuite, je vais redimensionner mon tableau au fur et à mesure que je liste des éléments :
For k = 0 To NbProduct – 1 : me permet de faire une boucle au fur et à mesure que j’ajoute des éléments dans le tableau, le NbProduct est incrémenté chaque fois que j’ajoute un élément dans le tableau, la variable NomRef aura pour valeur la référence de l’élément sur lequel je fais une boucle, ensuite je la compare avec les éléments du tableau : « If TableauTriProduct (0, k) = NomRef Then », si un élément portant la même référence existe dans le tableau le variable TestTrue prendra la valeur True ce qui indique à la procédure de ne pas le lister de nouveau dans le tableau.
Résultat avec le tri :
Télécharger les deux fichiers .bas de l’exemple (à insérer dans votre projet VBA)