API pour stocker les attributs

Bonjour,
En partant d'un assemblage, je souhaite stocker les attributs des pièces et assemblages dans un tableau pour pouvoir faire divers traitements de contrôle qualité dessus.

Je connais le nombre max de colonne de ma nomenclature (nb d'atttribut ~12), par contre je ne connais pas au départ le nombre de ligne. Je peux avoir des nomenclatures de plus de 300 lignes.

Sachant qu'il faut définir les dimensions du tableau au départ, quel serait pour vous la meilleure méthode (rapidité, stabilité, ....) ?

J'ai pensé scanné toutes la nomenclature pour connaitre le nombre de ligne, puis définir la taille du tableau (es ce possible ?) ...peut etre il y a de meilleurs méthode ?

Merci.

A+

Bonjour;

Si je comprend bien , vous voulez cumuler toutes vos nomenclatures issues d'un assemblage dans Excel ... un Enregistrer Sous de la nomenclature détaillée de la Nomenclature de votre assemblage principal devrai faire l'affaire.
Et pourquoi avoir besoin de connaitre la Nombre de lignes ... cela ne me semble pas nécessaire, si vous avez plusieurs Nomenclatures (je ne vois pas pourquoi) il est facile, sous excel de "coller" une quantité de données sur "La prochaine ligne Vide":

Les Commandes VBA (excel) pour obtenir les coordonnées des la prochaine ligne vide sont: (Par exemple):

'Retourne sur " derligne " le numéro de la prochaine ligne non vide (CTRL+ flèche bas)
derligne = Range("C1").End(xlDown).Row


derligne = Sheets("DATA").Range("E1048576").End(xlUp).Row
'Retourne sur " derligne " le numéro de DERNIERE ligne non vide


'Compte le nombre de lignes jusqu’à la dernière vide de la colonne
derligne = range("A" & rows.count).end(xlup).row


Cordialement.

2 « J'aime »

Bonjour,

Merci d'avoir pris le temps de me répondre.

Non, je travaille dans un assemblage principal avec des sous assemblages et des pièces , avec donc une seule nomenclature de type "liste en tabulation", ou bien une macro qui traverse les assemblages.

Donc je souhaite stocker les attributs dans un tableau à 2 dimensions, pour pouvoir ensuite intervenir directement sur les pièces sous SW sans passer par Excel.

A+

Bonjour,

Alors hors Excel, en VBA, il n'est pas possible de modifier dynamiquement la taille d'un tableau à plusieurs dimensions.

Il faut donc connaître sa taille dès le début en scannant le nombre de lignes puis en appliquant la valeur trouvée à la variable tableau.

Sinon faut jouer avec deux variables tableau à une dimension et synchroniser le remplissage de celles-ci.

1 « J'aime »

Bonjour;

Si vous souhaitez avoir le Nombre de Colonnes et le Nombre de ligne,

nNumCol = swTable.ColumnCount
nNumRow = swTable.RowCount

    Dim swView As SldWorks.View
    Dim swTable As SldWorks.TableAnnotation
    Dim swApp As SldWorks.SldWorks
    Dim swModel As SldWorks.ModelDoc2
    Dim swDraw As SldWorks.DrawingDoc

Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
Set swDraw = swModel
Set swView = swDraw.GetFirstView

    Do While Not swView Is Nothing
        ' Show the name of the view
        '        Debug.Print "  " & swView.Name

        ' Get the first table annotation for this view
        Set swTable = swView.GetFirstTableAnnotation
        Do While Not swTable Is Nothing
            ProcessTable swApp, swModel, swTable
            ' Get next table annotation for this view
            Set swTable = swTable.GetNext
        Loop
        ' Get the next view
        Set swView = swView.GetNextView
    Loop

Set swAnn = swTable.GetAnnotation
    nNumCol = swTable.ColumnCount
    nNumRow = swTable.RowCount

Cordialement.