Choisir la version de SolidWorks à ouvrir via Excel (2021 ou 2022)

Bonjour à tous,

J’ai une macro que je lance via une nomenclature Excel. Elle me permet de modifier des propriétés de pièces et d’assemblages et d’enregistrer les plans en PDF et DXF ainsi que les pièces en STEP pour préparer mes dossiers de fabrications. Je précise que lors de l’exécution de la macro, on ne voit pas SolidWorks s’ouvrir ni les pièces/plans s’ouvrir et se fermer.

Mais voilà mon problème est que nous travaillons avec la version 2022 et qu’un de nos client travaille avec la version 2021 et nous installe sur nos postes un environnement de travail pour leur version de SolidWorks.

Ma question est donc la suivante : peut-on, depuis Excel, choisir la version de SolidWorks à ouvrir (je ferais ça via un UserForm je pense) ? Mes connaissances en VBA sont limitées, tout ce que j’ai fait jusqu’à aujourd’hui je l’ai fait en piochant à droite à gauche sur internet. Pour la partie de code propre aux commandes SolidWorks (la partie modification des propriétés n’est pas encore tout à fait terminée, je ne la mets pas ci-dessous) :

Ouverture de SolidWorks :
Set SWAPP = CreateObject(« SldWorks.Application »)

Ouverture et enregistrement de la pièce en STEP :
Set SWMODEL = SWAPP.OpenDoc6(CHEMIN_PIECE, 1, 1, «  », myError, myWarning)
SWMODEL.SaveAs2 FLD_LANCEMENT_TEMPO & CHEMIN_STEP, 0, True, False

Ouverture et enregistrement du plan en PDF et DXF :
Set SWMODEL = SWAPP.OpenDoc6(CHEMIN_PLAN, 3, swOpenDocOptions_Silent, «  », myError, myWarning)
SWMODEL.SaveAs2 FLD_LANCEMENT_TEMPO & CHEMIN_PDF, 0, True, False
SWMODEL.SaveAs2 FLD_LANCEMENT_TEMPO & CHEMIN_DXF, 0, True, False

Fermeture des documents ouverts :
SWAPP.CloseAllDocuments True
Set SWAPP = Nothing: Set SWMODEL = Nothing

Peut-on, à la place du " Set SWAPP = CreateObject(« SldWorks.Application ») " avoir une ligne de code qui permette d’ouvrir la version désirée ?

Merci de votre aide =)

Bonjour @f.vergneau ,

Pour choisir la version de SolidWorks, il suffit d’ajouter l’indice de version à la fin du texte de création de l’objet SWAPP :
Set SWAPP = CreateObject(« SldWorks.Application.30 »)

Veiller à mettre les guillemets appropriés, et sans espace.
Les indice sont les suivants:

  • SOLIDWORKS 2015: 23
  • SOLIDWORKS 2016 : 24
  • SOLIDWORKS 2017 : 25
  • SOLIDWORKS 2018 : 26
  • SOLIDWORKS 2019 : 27
  • SOLIDWORKS 2020 : 28
  • SOLIDWORKS 2021 : 29
  • SOLIDWORKS 2022 : 30

Vous pouvez proposer le choix de la version dans une liste déroulante, et récupérer le bon indice à partir de sa propriété ListIndex.
image

Cordialement.

3 « J'aime »

Salut m.blt !

Merci beaucoup pour ta réponse ça marche nickel ! Quelle efficacité :wink: !