[RESULO] Lien Excel et SW21012 sur VBA

vos questions concernant les API SolidWorks

Messagepar Annwn » Jeu 03 Mai 2012, 12:06

J'ai fait la macro sur SW2011

je fais l'essai sur SW 2012 avec excel 2007 et je reviens te dire ...
Programmer, c'est bien; programmer utile, c'est mieux........
Venez faire un tour ici !
Annwn
Site Admin
 
Messages: 4938
Inscription: Lun 18 Déc 2006, 22:35

Messagepar Annwn » Jeu 03 Mai 2012, 12:15

Bon j'ai essayé et ... ça marche chez moi :(

Je vois que tu es sous seven : ça peut venir de là mais je ne sais comment régler le problème !

essaye ça : Set swApp = CreateObject("SldWorks.Application")
Programmer, c'est bien; programmer utile, c'est mieux........
Venez faire un tour ici !
Annwn
Site Admin
 
Messages: 4938
Inscription: Lun 18 Déc 2006, 22:35

Messagepar fneves » Jeu 03 Mai 2012, 14:59

BONNE NOUVELLE :D

J'ai écrit la dernière petite modif de Annwn et cela fonctionne :wink:

Mais (il y a toujours un mais Evil ), j'ai remarqué 2 choses:

1/ Il faut avant que j'appuie sur mon bouton "rafraichir" que je sauvegarde mon fichier excel pour qu'il prenne la modif en compte ou que je clique 2 fois dessus.
j'ai essayé de rajouter "activeWorbook.save" mais ça veux pas.

2/ losque je quitte mon fichier excel, je suis obligé de retirer plusieurs fenêtre excel (voir photo)

Malgré ces petits problème génants, grâce à votre coopération, je commence à retrouver la sourire :D
Avatar de l’utilisateur
fneves
Chevalier Jedi SolidWorks
 
Messages: 220
Inscription: Jeu 12 Mai 2011, 9:16
Localisation: Boissy l'aillerie (95) - SW 2012 SP2

Messagepar liryc » Jeu 03 Mai 2012, 16:11

Il faut que tu fermes l'instance excel.
Pour le save ça me paraît étrange mais comme c'est dans SW possible que ça plante.
Essaye ça:
Code: Tout sélectionner
ExcelApp.WorkBooks.Save
ExcelApp.WorkBooks.Close
ExcelApp.Application.Quit
Set ExcelApp = Nothing

Ensuite force le refresh du modèle.
liryc
Chevalier Jedi SolidWorks
 
Messages: 479
Inscription: Ven 02 Mar 2007, 8:14
Localisation: Paris - SW2009 SP5.0

Messagepar fneves » Ven 04 Mai 2012, 9:26

UN GRAND MERCI A TOUS :P

La sauvegarde ne veux pas marcher, mais c'est pas grave, j'ai créé un autre bouton "enregistrer" et cela fonctionne bien maintenant.

Voici le code pour les petits curieux (SW2012 et Excel 2007)

Sub rafraichir2()

Dim swApp As SldWorks.SldWorks, Part As SldWorks.ModelDoc2
Dim dbValue As Double, myDim As Dimension

'Ouvre Excel et le fichier correspondant
Set ExcelApp = CreateObject("Excel.Application")
Set myWB = ExcelApp.Workbooks.Open("C:\DULINOX\Documents\Modèle Excel\Calcul bacs gastro pour étagère.xlsm")
Set xlsh = myWB.ActiveSheet

'Recherche la valeur dans le tableau Excel
dbValue = xlsh.Cells(13, 2).Value

'Quitte le fichier Excel ainsi que l'application Excel
'ExcelApp.Workbooks.Save
ExcelApp.Workbooks.Close
ExcelApp.Application.Quit
Set ExcelApp = Nothing

'Active le document ouvert dans SolidWorks
Set swApp = CreateObject("SldWorks.Application")
Set Part = swApp.ActiveDoc

'Remplace la cote SolidWorks par la valeur dans la cellule Excel
Set myDim = Part.Parameter("D2@Esquisse3D2")
myDim.SystemValue = dbValue / 1000

'Reconstruit le fichier pièce SW
Part.ClearSelection
Part.ForceRebuild

End Sub

Merci encore 8)
Avatar de l’utilisateur
fneves
Chevalier Jedi SolidWorks
 
Messages: 220
Inscription: Jeu 12 Mai 2011, 9:16
Localisation: Boissy l'aillerie (95) - SW 2012 SP2

Messagepar liryc » Ven 04 Mai 2012, 10:11

Pour le save j'ai omis un paramètre, met ça:
Code: Tout sélectionner
ExcelApp.Workbooks("Calcul bacs gastro pour étagère.xlsm").Save

Testé rapidement sur SW2009 et Excel 2002 ça fonctionne, pas de raison que ça ne fonctionne pas sur Excel 2007/SW2012.
liryc
Chevalier Jedi SolidWorks
 
Messages: 479
Inscription: Ven 02 Mar 2007, 8:14
Localisation: Paris - SW2009 SP5.0

Messagepar fneves » Mer 09 Mai 2012, 9:06

Je confirme ça enregistre bien aussi sur Excel2007/SW2012, merci :D
Avatar de l’utilisateur
fneves
Chevalier Jedi SolidWorks
 
Messages: 220
Inscription: Jeu 12 Mai 2011, 9:16
Localisation: Boissy l'aillerie (95) - SW 2012 SP2

Messagepar fneves » Ven 11 Mai 2012, 10:19

Pour information, j'ai trouvé une autre solution en cherchant sur le Net :D

Au faite ça dépend comment on insere le tableau Excel dans le fichier pièce SW.
(voir photo jointe)

Si on insere le tableau Excel avec un lien extérieur, il faut utiliser la solution décrite ci-dessus (donc ouvrir les applications SW et Excel ainsi que le fichier Excel concerné)

Par contre, si on selectionne la zone voulue d'un fichier Excel et que fasse un copier/coller alors, il faut utiliser le programme ci-joint. Il est beaucoup plus simple pour moi :wink:

@+ à tous.

PS: je sais pas comment vous faites pour inserer les photos entre les commentaires :cry:
Avatar de l’utilisateur
fneves
Chevalier Jedi SolidWorks
 
Messages: 220
Inscription: Jeu 12 Mai 2011, 9:16
Localisation: Boissy l'aillerie (95) - SW 2012 SP2

Précédente

Retourner vers Questions générales sur les API

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 5 invités

banniere