Lecture de nomenclatures

Bonjour à tous !

Ça fait des mois que j’essaie tant bien que mal de faire en sorte qu’une macro puisse lire une nomenclature sur un plan.

Je ne suis pas du tout un expert du VBA malheureusement, je fais donc appel à l’IA pour essayer plein de choses. Mais je constate que peu importe le nombre de macro générée, il est visiblement impossible de lire une nomenclature posée sur un plan via Insertion>Table>Nomenclature.

Je voudrais donc faire appel aux mordus de VBA de ce forum, pour savoir si quelqu’un y est parvenu ou si c’est réellement impossible.

Afin de comprendre un peu mieux mon besoin, voici mon objectif final :

Sur cette image, on peut voir une nomenclature d’un assemblage de pièces. J’aimerais pouvoir récupérer les données des colonnes REP et QTÉ afin de les envoyer en propriété personnalisée de certaines pièces.

Actuellement, dans notre modèle de nomenclature, nous avons deux colonnes cachées que nous remplissons à la main pour que les propriétés nommées REPERE et QTE soient créées/remplies dans les propriétés de la ou des pièce(s) concernée(s). Je vous passe les conditions pour que ces propriétés soient ou non remplies.

Le but sera ensuite de pouvoir les récupérer via un fond de plan spécifique pour nos pièces à usiner.

Alors, pensez vous qu’une macro puisse faire ceci ?

Merci d’avance pour vos réponses.

Bonjour,

Une macro sait parfaitement lire le contenu d’une nomenclature.
Pour ma part j’utilise ce bout de code pour lire le contenu et récupérer toutes les colonnes.

            Set swAnnTable = swAnn.GetSpecificAnnotation
            nNumCol = swAnnTable.ColumnCount
            nNumRow = swAnnTable.RowCount
            For idx = 1 To nNumRow - 1
                For j = 1 To nNumCol - 1
                    sTableText = swAnnTable.DisplayedText2(idx, j, True)
                Next j
            Next idx

Donc pour récupérer une colonne particulière (si fixe sinon faut identifier l’intitulé de la colonne et récupérer son numéro de colonne comme pour le VBA Excel) le bout de code est :

swAnnTable.DisplayedText2(numéro de ligne, numéro de colonne, true)
3 « J'aime »

Bonjour;

un autre exemple de macro pour récupérer les informations d’une nomenclature:

et pour écrire les propriétés dans les composants:

Mais attention avec ce type de manipulations, ne pas se faire avoir avec de mauvaises quantités si on travail avec des configurations ou dans des sous-assemblages…

1 « J'aime »