Je rencontre un petit soucis avec une macro qui sauvegarde un objet Word incorporé dans un fichier Excel.
Je me suis rendu compte que parfois Excel perd la trace de l'objet et je passe donc par la méthode suivante en cas d'erreur avant l'enregistrement :
VB:
Set shp = Worksheets("Modele").Shapes("ModeleWord")
shp.OLEFormat.Activate
Problème : quand je suis en double écran uniquement, l'objet s'ouvre dans une instance Word après activation. Il est donc accessible et susceptible d'être modifié ce qui n'est pas voulu !
Je cherche donc une méthode qui détecterait si l'objet est ouvert (pour ainsi couvrir les deux possibilités, écran simple et double écran), qui me permettrait de le fermer via un simple Close :
Code:
Set objOLE = shp.OLEFormat.Object
Set objWord = objOLE.Object
objWord.Close
On Error Resume Next
With GetObject(, "Word.Application")
.ActiveDocument.Saved = True
If .Documents.Count = 1 Then .Quit Else .ActiveDocument.Close
End With
On Error GoTo 0