Macro ne fonctionne pas [Résolu]

Signaler
-
 Damien007 -
Bonjour,

Je ne connais rien à libreoffice openoffice mais je dois m'y mettre (sur libreoffice) et je dois notamment faire des macros (je suis un utilisateur modeste d'excel VBA).

j'ai regardé sur net, j'ai copié stricto sensus un code libreoffice sensé marcher mais ça ne marche pas chez moi (libreoffice Version: 6.2.8.2 (x64), windows 10). je cherche mais je ne trouve pas alors je ne suis décidé a venir demander de l'aide, d'avance merci !

j'ai l'impression qu'il me manque des extensions ou je ne sais quoi pour que ça marche (pour faire marcher les lignes de type com.sun.star....?) , voici le code copié et qui me renvoi erreur 423 (sur la ligne : dimensionsForme.Widht = 2600) quand je exécute :

public Sub test01

Dim monDoc As Object
Dim lesFeuilles As Object
Dim maFeuille As Object
Dim maPage As Object
Dim maForme As Object
Dim dimensionsForme As New com.sun.star.awt.Size
Dim positionForme As New com.sun.star.awt.Point
 
monDoc = ThisComponent
lesFeuilles = monDoc.Sheets
maFeuille = lesFeuilles.getByName("tableau_bord")
maPage = mafeuille.DrawPage

dimensionsForme.Widht = 2600
dimensionsForme.Height = 1200
positionForme.x = 3500
positionForme.y = 3500

maForme = monDoc.createInstance("com.sun.star.drawing.EllipseShape")
maForme.Size = dimensionForme
maPage.add(maForme)
maForme.Position = positionForme

end sub



merci d'avance

Configuration: Windows / Chrome 83.0.4103.106

6 réponses

Messages postés
3735
Date d'inscription
jeudi 20 mars 2008
Statut
Membre
Dernière intervention
22 octobre 2020
902
Pour ton info, la macro fonctionne.
Il faut juste être un peu plus rigoureux quant à la rédaction des variables.



merci beaucoup !

effectivement, je pensais a un truc beaucoup plus compliqué mais là ça marche,
Messages postés
2154
Date d'inscription
vendredi 25 juillet 2014
Statut
Membre
Dernière intervention
21 octobre 2020
860
Bonjour

remplacer : dimensionsForme.Widht = 2600
par :
dimensionsForme.Width = 2600


remplacer : maForme.Size = dimensionForm
par
maForme.Size = dimensionsForme
parfait merci
Messages postés
12186
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
15 octobre 2020
2 497
Bonjour,

Essaye l'exemple page 80 de ce document : https://jazz.ensil.unilim.fr/outils_info/OOo_API_intro-04.pdf
Bonjour et merci pour le doc,

j'ai essayé, j'ai aussi un message d'erreur, différent cette fois erreur '1' type: com.sun.star.lang.illegalArgumentException

par curiosité j'ai installé apache openoffice, j'ai le même message d'erreur sur cette macro.
tien après avoir installé open office et réouvert libreoffice, j'ai ce message à l'ouverture de libreoffice :

"libreoffice nécessite un environnement d'exécution java (JRE) 64-bit pour réaliser cette tâche. Veuillez installer un JRE puis redémarrer LibreOffice"

c'est surement ça le pb, ceci dit j'ai souvenir d'avoir vu ce message et d'avoir fait ce qui était demandé, je vais refaire et voir si le problème persiste.

EDIT : Bon j'ai réinstallé JRE, en faisant attention de choisir 64bit (j'avais surement fait 32bit qui est par défaut la première fois), je n'ai plus le message d'erreur mais par contre mes macros continuent de ne pas fonctionner
Messages postés
3735
Date d'inscription
jeudi 20 mars 2008
Statut
Membre
Dernière intervention
22 octobre 2020
902
"Ne pas fonctionner" n'aidera pas ceux qui tentent de vous aider.
Il faut fournir un document intégrant la macro.


Et le plus simple est de vous adresser sur un forum spécialisé en programmation :
https://forum.openoffice.org/fr/forum/forum24-programmation-macro-basic.html


.
Bonjour,

Merci pour le lien.

Pour "ne pas fonctionner", je crois qu'il y a quand même du détail dans mes posts au delà de cette phrase..., y compris un exemple de code qui ne s’exécute pas car erreur, les messages d'erreurs...
j'ai essayé avec un document totalement vide et seulement la macro ci dessus, j'ai toujours une erreur en tentant d’exécuter la macro.

je vais tenter ma chance sur le forum en lien.

Cordialement
Messages postés
3735
Date d'inscription
jeudi 20 mars 2008
Statut
Membre
Dernière intervention
22 octobre 2020
902 > Damien007
La macro fait référence à du contenu dans un document.
Sans fournir ce dernier, comment voulez-vous qu'on fasse ?
>
Messages postés
3735
Date d'inscription
jeudi 20 mars 2008
Statut
Membre
Dernière intervention
22 octobre 2020

Pardon j'ai peut-être oublié de préciser que j'ai aussi essayé suivant les conseils de pikaju de taper le code fournit page 80 dans un fichier vierge et cela ne fonctionne pas non plus (j'ai juste changé la page de 2 à 0 et le nom du fichier pour qu'il existe chez moi). en fait j'ai l'impression que peut importe le code, que c'est plutôt un problème d'extension, d'environnement...


public Sub test02

Dim MonDocument As Object
Dim UnePage As Object
Dim MonImage As Object
Dim LeBitmap As Object
Dim Taille1 As New com.sun.star.awt.Size
Dim Position1 As New com.sun.star.awt.Point
Dim Proportion As Double
MonDocument = ThisComponent
UnePage = MonDocument.drawPages(0) ' page de la troisième feuille Draw
MonImage = MonDocument.createInstance("com.sun.star.drawing.GraphicObjectShape")
MonImage.GraphicURL = ConvertToURL(" C:\temp\44.jpg ")
Position1.x = 2500 ' 25 mm à droite du coin haut-gauche de la page
Position1.y = 5300 ' 53 mm plus bas que le coin haut-gauche de la page
UnePage.add(MonImage)
LeBitmap = MonImage.GraphicObjectFillBitmap

end sub



dans ma macro du premier post, hormis le nom de la feuille, rien ne vient du fichier, j'ai tenté de créer une ellipse (en fait ce code vient aussi d'un ouvrage, pas de moi)

sinon je ne sais pas comment joindre un fichier à mon post. voici un lien de téléchargement pour mon fichier test
https://we.tl/t-5sUCOvfaLf
Messages postés
18231
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
25 octobre 2020
5 043
hello
vérifier Outils -> Options -> Libreoffice -> Sécurité -> Sécurité des macros
merci pour cette réponse, j'avais effectivement vérifié ça.