bonjour a tous
je recherche a lancer une macro open office dans mon code vb6. si vous aviez des informations,exemple et/ou explication cela m aiderai bien
merci par avance
bonjour a tous
je recherche a lancer une macro open office dans mon code vb6. si vous aviez des informations,exemple et/ou explication cela m aiderai bien
merci par avance
Salut
Tu dois faire une référence à OpenOffice dans ton projet (Projet > Références) et une variable du même type qu'un document OpenOffice dans ton code pour référer à ton document.
Malheureusement, je ne connais pas les objets de OpenOffice. Faudra que tu trouves la documentation. Cherche dans l'aide de VBA de OpenOffice. Je n'ai enregistré une macro qu'une seule fois pour jeter un coup d'oeil sur le code... je n'ai rien reconnu! Mais c'était juste un coup d'oeil rapide.
bonjour Tipiak03 , bonjour Zazaraignée
il n'existe pas de bibliotheque VB pour piloter Open Office . Tu devras utiliser les API d'Open Office pour agir sur les documents OOo depuis VB
en fonction des opérations à effectuer , tu pourrais peut etre écrire la macro directement dans VB
http://www.developpez.net/forums/vie...ht=open+office
bon apres midi
michel
re
voici ce que j ai trouver mais la macro ne s execute pas
Call dispatcher.executeDispatch(Frame, ".macro:///Standard.Module1.Main", "", 0, args())
dispatcher et frame sont des objects
merci de votre aide
rebonjour
cette procédure testée en VB6 & VBA(Excel2002) permet de déclencher la macro d'un document Open Office ouvert, nommé "Sans nom1" . la macro open Office est nommée "nomMacroOOo" et située dans le "Module1"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 Private Sub Command1_Click() 'MichelXld le 17.02.2006 'http://<a href="http://www.developpez.net/forums/viewtopic.php?p=2616191#2616191" target="_blank">http://www.developpez.net/forums/vie...616191#2616191</a> ' Dim oServiceManager As Object, oURL As Object Dim oTrans As Object Dim Desktop As Object, Args(0) As Object, oDisp As Object Set oServiceManager = CreateObject("com.sun.star.ServiceManager") Set oURL = oServiceManager.Bridge_getStruct("com.sun.star.util.URL") oURL.Complete = "macro://Sans nom1/Standard.Module1.nomMacroOOo" Set oTrans = oServiceManager.createInstance("com.sun.star.util.URLTransformer") oTrans.parseStrict oURL Set Args(0) = oServiceManager.Bridge_getStruct("com.sun.star.beans.PropertyValue") Set Desktop = oServiceManager.createInstance("com.sun.star.frame.Desktop") Set oDisp = Desktop.queryDispatch(oURL, "_self", 0) oDisp.Dispatch oURL, Args() Set oDisp = Nothing Set Desktop = Nothing Set oTrans = Nothing Set oURL = Nothing Set oServiceManager = Nothing End Sub
si ton document Open Office est deja sauvegardé sur le disque , tu peux utiliser ce type de synthaxe :
il ne faut pas préciser le type de document ( .ods ,.odt ...)
Code : Sélectionner tout - Visualiser dans une fenêtre à part oURL.Complete = "macro://OOoClasseurTest/Standard.Module1.Main"
Attention : la procédure est sensible aux majuscules et aux minuscules
bon apres midi
michel
Bonjour SilkyRoad,
Ton code ne marche pas. Quand j'execute ton code sous VB6 ça me fait rien du tout. Moi j'utilise OpenOffice2.0.
Ton code ne donne pas des erreurs et même temps ça n'execute pas la macro aussi.
Tester un autre fois ton program et dit moi quelle est le problème.
Merci d'avance
bonsoir
chez moi cela fonctionne tres bien : testé avec OOo2.0.1 et VB6 .
as tu suivi les indications du message ( respect de la casse...)
ta macro open office est dans un document specifique ou dans la bibliotheque "Mes macros" ?
si la macro est stockée dans "Mes macros" tu peux utiliser :
Code : Sélectionner tout - Visualiser dans une fenêtre à part oURL.Complete = "macro:///Standard.Module1.Main"
bonne soiree
michel
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager