Bonjour
Ci dessous une sub que j'utilise pour ouvrir ou activer devant un
document si il est déjà ouvert.
Sub ActiveCourrier
Dim PropFich(), arg(0) as new com.sun.star.beans.PropertyValue
Dim lesDocs as Object, unDoc as Object, DocCourrier as Object
Dim URLcourrier as String
Dim laCollection as Object
Dim DocOuvert as Long
MonDocument = ThisComponent 'Sélectionne le document en cours
MaFeuille = MonDocument.CurrentController.ActiveSheet ' sélectionne
la feuille activée
DocOuvert = 0
arg(0).Name="MacroExecutionMode"
arg(0).Value =
com.sun.star.document.MacroExecMode.ALWAYS_EXECUTE_NO_WARN
'on crée le chemin / repertoire au format URL
URLcourrier = ConvertToURL("chemin du fichier")
lesDocs=stardesktop.components
on error resume next
laCollection = lesDocs.createEnumeration
do while laCollection.hasMoreElements
unDoc=laCollection.nextElement
DocURL = unDoc.URL
if DocURL = URLcourrier then
DocOuvert = 1
DocCourrier = unDoc
exit do
end if
loop
if DocOuvert = 0 then
DocCourrier=stardesktop.loadComponentFromURL(URLcourrier,
"_blank", 0, arg())
End if
DocCourrier.currentcontroller.frame.containerwindow.toFront 'place
le document devant
end sub
Gerard Kohler a écrit :
bonjour,
petit problème rageant :
comment tester un document pour savoir s'il est ouvert ?
si j'ouvre un document tableur par un macro, pour chaque appel de la
macro une nouvelle instance du document est ouverte.
comment tester ce document pour savoir s'il est ouvert de façon à ne
pas recréer de nouvelle instance ?
merci encore de vorte aide
Kohler