Philippe Allart a écrit :
Bernard Marcelly a écrit :
Une autre solution est de recharger le document, ce qui n'a pas l'air
possible avec l'API.
J'avais tenté un monDocument.reload() sans succès.
L'enregistreur de macros peut le faire, mais pour
éviter le message de confirmation on doit lui faire croire que rien
n'est modifié:
monDocument.setModified(False)
dim dispatcher as object
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dispatcher.executeDispatch(monDocument.CurrentController.Frame,
".uno:Reload", "", 0, Array())
Il ne faut pas que la macro soit dans le document, sinon elle est
interrompue par le Reload.
Le rechargement a l'air de bien se passer, mais j'ai un plantage sur le
StoreToURL suivant. Il semble que ce soit l'objet monDocument qui a changé.
Maintenant j'ai deux options qui marchent:
Function Recharger(monDocument as Object) as Object
dim dispatcher as object
dim URL as String
Dim propFich()
dim option as integer
option = 2
monDocument.setModified(False)
if option = 1 then
URL = monDocument.URL
monDocument.close(true)
Recharger = starDeskTop.LoadComponentFromUrl(URL, "_blank", 0,
propFich)
else
dispatcher =
createUnoService("com.sun.star.frame.DispatchHelper")
dispatcher.executeDispatch(monDocument.CurrentController.Frame,
".uno:Reload", "", 0, Array())
Recharger = thisComponent
end if
end function
La deuxième option exige que monDocument ait le focus.
Merci de ton aide,
Ph.
S'il n'y a pas de raisons de rester dans le même classeur, une des
solutions est de créer de nouveaux documents sur lesquels on travaille
et que l'on ferme ensuite. Par exemple :
Sub Main
Dim args(0) as new com.sun.star.beans.PropertyValue
dim oClasseur as object
dim sAdresseClasseur as string
dim i as integer
for i = 0 to 5
'ouverture d'un nouveau classeur
oClasseur = CreerClasseur("nom_modele.ots")
'Traitements
'sauvegarde et fermeture
sAdresseClasseur = ConvertToURL("/chemin/test" + i + ".ods")
oClasseur.storeAsURL(sAdresseClasseur, args())
oClasseur.close(True)
next i
End Sub
Function CreerClasseur(sNomModele as string) as object
dim sAdresseMod as string
dim propFich() as New com.sun.star.beans.PropertyValue
sAdresseMod =
convertToURL("/home/gerard/donnees/param/openoffice/modeles/Vaournet/" +
sNomModele)
CreerClasseur = StarDesktop.LoadComponentFromURL(sAdresseMod, "_blank",
0, propFich())
End Function
--
Gérard LANOYE, le bourg, 81140 VAOUR
Tél 05 63 56 37 20
Mail [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]