Copier/coller Nomenclature sur Excel

Bonjour,

Je voulais savoir si il était possible de copier/coller une partie de la nomenclature issu d’un plan pour la coller dans un fichier Excel ? (sans passer par un" enregistrer sous" de la nomenclature et créer un fichier Excel)
Avez-vous un astuce ou c’est pas possible ?

Merci

Bonjour,

Les rois de la macro te diront que tout est possible (macro qui enregistre en format d’export Excel puis recopie le tableau pour te permettre de l’avoir dans ta pile de copier/coller Windows, puis suppression du fichier que l’on vient de créer).

Sinon il ne semble pas y avoir de solution de copie directe (en 2020 en tout cas).

Après tu as la solution ‹ relou › historique : tu vires ta nomenclature SW, tu remets une vieille nomenclature au format Excel qui est éditable par clic droit dans Excel → possible de la recopier

2 « J'aime »

Bonjour @Guillaume_REBOUSSIN

Une question, pourquoi sans enregistrer sous ? c’est une solution simple, qui vous conviendrait.

Effectivement le copié / collé ne marche pas, uniquement dans l’autre sens (Excel vers SW)

1 « J'aime »

@froussel

Car je dois extraire une dizaine de nomenclature pour les rejoindre dans un même fichier excel… du coup cela serait beaucoup plus pratique de faire un copier/coller

Bonjour,

Dans ce cas par macro, pas d’autres solutions en natif hormis celle proposée par @froussel

1 « J'aime »

Extraire par macro (@Cyril_f ) et compilé par cette même macro c’est possible il me semble.
Cela équivaut à un enregistré-sous + compilation de fichier.

1 « J'aime »

Bonjour,

Ci-dessous une macro rudimentaire qui copie la zone sélectionnée de la nomenclature dans le presse-papiers de Windows (merci l’IA…).
Pas de sélections multiples possibles.

Il reste à coller le résultat dans Excel.

[Edit - Macro modifiée, disponible plus bas]

Bonjour,
Sans l’IA, j’ai un code déjà existant pour extraire les données d’une ligne de nomenclature (il me semble avoir déjà fourni pour une autre demande du même type sur ce forum).
On peut aussi manipuler Excel directement depuis la macro lancée dans SW et copier/coller directement sans attendre d’intervention de l’utilisateur.

1 « J'aime »

Salut,
Je prends le contre pied, mais on peut envisager de faire un assemblage de toute les pièces, même sans positionnement, et de faire une nomenclature.

Très bonne suggestion de @Cyril_f, faire le copier/coller en une seule macro depuis Solidworks.
Procédure:

  • Dans Excel, sélectionner la cellule de destination ;
  • Dans Solidworks, sélectionner la plage de nomenclature à copier/coller ;
  • Exécuter la macro depuis Solidworks.

Une confirmation est demandée si la plage de destination dans Excel n’est pas vide.

StructureEiffel.swp (67 Ko)

1 « J'aime »

Voici un des sujets pour récupérer les données de tables
Lecture de nomenclatures - Macro - Forum myCAD
Et un autre pour exporter vers Excel
Export Nomenclature vers Excel avec une Macro VBA - Macro - Forum myCAD

1 « J'aime »

Bonjour,

Dans toutes ces solutions restera le problème de la mise à jour de la nomenclature en cas de modif de l’assemblage. Donc, conseil rester vigilant

Bonjour,

On peut toujours ajouter du traitement pour gérer ce cas :slight_smile:

On peut lier des données entre des fichiers Excel pour qu’elles se mettent à jour automatiquement.
Excel vous demander d’activer la mise à jour des liaisons, ou dès les mettre à jour manuellement.
Il faut que la macro crée des fichiers pour chaque nomenclature et ensuite dans un fichier de compilation vous mettez à jour à chaque mise à jour.
Je pense qu’Il faut créer une valeur dans la nomenclature SolidWorks qui peut ensuite être filtré ultérieurement, soit via la macro soit via Excel, une date par exemple.
Est-ce possible :thinking:

Salut j’avais fais cette macro il y a quelque temps et je m’en sers encore.

Tu sélectionne une table, ou une cellule peut importe, tu lances la macro

et ensuite tu as plus qu’un Ctrl+V dans une cellule Excel, c’est tout.

CopyBomToExcel.swp (48 Ko)

2 « J'aime »

Dans ce cas tu créé un ASM temporaire avec tes 10 ensembles. même pas besoin de créer un plans, tu peux en extraire la nomenclature complète depuis l’ASM.

1 « J'aime »

Bonjour @Ludovic_MARCELIN

Je pense que tu as résolu son problème : il suffit qu’il affecte la macro à une touche ou une icône perso et le tour est joué.

Après re test de ta macro, le copier coller se fait mal pour les cellules contenant des saut de paragrpahe : lors du coller sous Excel il découpe les données dans plusieurs cellules au lieu de faire une cellule avec du texte contenant des saut de paragraphe.

Un pro du VBA devrait facilement pouvoir corriger ce détail

Voici un code ‹ fonctionnel › qui ‹ résoud › le problème des renvois à la ligne/saut de paragraphe (en mode bourrin après édition du code par M365 Copilot : j’ai remplacé tous les caractères ressemblant de près ou de loin à un saut de paragraphe/ligne et l’ai remplacé par un espace.
→ Le texte s’importe bien dans une seule cellule

Par contre il n’y a plus de renvoi :crying_cat_face:

CopyBomToExcel - Copilot edit.swp (48,5 Ko)

Si quelqu’un arrive à faire plus propre (et arrive à mettre des renvois à la ligne à l’intérieur du texte de la cellule excel) il n’a qu’a reposter.

NB : pas sûr que ce soit faisable vu que la macro passe par une chaine de caractère séparé par des tab (qui décalent les cellules lors du copier dans Excel) et des CRLF (qui font le renvoi à la ligne d’après).
Il faudrait sûrement réécrire totalement la macro pour avoir quelque chose de réellement fonctionnel (que la macro créé un fichier Excel temporaire, quelle colle le texte dans les cellules et quelle mette l’ensemble des cellules remplies dans le presse papier).

1 « J'aime »

Exact ce cas je n’en ai pas eu besoin toute mes valeurs sont sur une seule ligne dans mes BOM