Focus plan pour importer image vba

Bonjour a tous, voila j'ai fait un bout de code intégré a ma macro pour insérer une image jpg dans un plan solidworks. Le problème c'est que je sélectionne le plan qui est déjà ouvert avec opendoc6 mais ca ne fonctionne pas. Quand j'ai le plan ouvert ca marche mais si il est pas sur la fenêtre principale ca ne fonctionne plus.

Je précise qu'a ce moment de la macro le plan sera deja ouvert, mais le focus est sur un .part, le plan est ouvert mais pas selectionné.

Voici la fonction qui doit insérer le code barre :

Function codebarreDRAW(FCB As String, namePL As String, chemin As String)
Dim myModelView As Object
Dim swModel As ModelDoc2
Dim swApp As SldWorks.SldWorks
Dim swLoadErrors As Long
Dim swLoadWarnings As Long
Dim Fplan As String

Fplan = namePL & ".SLDDRW"

Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc
Set myModelView = Part.ActiveView
Set swModel = swApp.OpenDoc6(Fplan, swDocDRAWING, swOpenDocOptions_Silent, "", swLoadErrors, swLoadWarnings)
myModelView.FrameState = swWindowState_e.swWindowMaximized
Dim SkPicture As Object
Set SkPicture = Part.SketchManager.InsertSketchPicture(FCB)
SkPicture.SetSize 130 / 1000, 20 / 1000, True
SkPicture.SetOrigin 110 / 1000, 35 / 1000
End Function

 

J'ai une erreur sur la ligne Skpicture.setsize

Le pire c'est que la ligne InsertSketchPicture ne plante pas mais l'image n'est pas importée.

Si vous avez des idées je suis preneur.

Merci !

Je suis arrivé a résoudre un des problemes, en fait au lieux d'utiliser opendoc6 j'utilise activatedoc3 et ca me met bien sur la fenetre du plan mais par contre j'ai toujours l'erreur sur la ligne :

SkPicture.SetSize 130 / 1000, 20 / 1000, True

erreur 91 variable objet ou avec une variable de bloc qui n’est pas définie

Je suppose donc que le Skpicture ne s'est pas bien initialisé

Ok c'est résolu, j'ai juste mis le set part avant le le activedoc3 donc ca pouvait pas marcher ! je vous mets la fonction permettant d'insérer dans un plan ouvert.

 

A remanier selon les besoins notement au niveau des setsize et set origin,

 

fcb c'est le fichier image, et namepl c'est le nom du plan a rentrer en entrée dans la fonction.

 

Function codebarreDRAW(FCB As String, namePL As String)
Dim myModelView As Object
Dim swModel As ModelDoc2
Dim swApp As SldWorks.SldWorks
Dim Errors As Long
Dim swLoadWarnings As Long
Dim Fplan As String

Fplan = namePL & ".SLDDRW"

Set swApp = Application.SldWorks
Set swModel = swApp.ActivateDoc3(Fplan, False, swRebuildOnActivation_e.swRebuildActiveDoc, Errors)
Set Part = swApp.ActiveDoc
Dim SkPicture As Object
Set SkPicture = Part.SketchManager.InsertSketchPicture(FCB)
SkPicture.SetSize 130 / 1000, 20 / 1000, True
SkPicture.SetOrigin 110 / 1000, 35 / 1000
End Function