1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| Sub creerNouveauDocumentWriter()
Dim oServiceManager As Object, oDispatcher As Object
Dim Desktop As Object, Document As Object
Dim args()
Dim Chemin As String, Fichier As String
Dim T As Date
'Copie de la plage de cellules dans Excel
Range("A1:A5").Copy
'Création d'une instance Open Office
Set oServiceManager = CreateObject("com.sun.star.serviceManager")
Set Desktop = oServiceManager.createInstance("com.sun.star.frame.Desktop")
'Création d'un nouveau document Writer
Set Document = Desktop.loadComponentFromURL("private:factory/swriter", "_blank", 0, args)
'Collage dans Open Office
Set oDispatcher = oServiceManager.createInstance("com.sun.star.frame.DispatchHelper")
oDispatcher.executeDispatch Document.currentController.Frame, ".uno:Paste", "", 0, Array()
'Conversion de l'emplacement de sauvegarde au format URL
Chemin = Replace(ThisWorkbook.Path, "\", "/")
Fichier = "file:///" & Chemin & "/essai.odt"
'------
'Sauvegarde du nouveau document Writer
Document.storeAsURL Fichier, args()
DoEvents
'--------
'ajoute une temporisation de 2 secondes pour empécher que le fichier
'ne se ferme avant la fin de la création
T = Timer + 2: Do Until Timer > T: DoEvents: Loop
'--------
'Fermeture du fichier
'L'argument True indique que les modifications vont être sauvegardées à la fermeture
Document.Close (True)
End Sub |
Partager