Macro ne fonctionne pas

Résolu
Damien007 -  
 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

  1. OOoForum Messages postés 3871 Date d'inscription   Statut Membre Dernière intervention   965
     
    Pour ton info, la macro fonctionne.
    Il faut juste être un peu plus rigoureux quant à la rédaction des variables.


    2
    1. Damien007
       
      merci beaucoup !

      effectivement, je pensais a un truc beaucoup plus compliqué mais là ça marche,
      0
  2. yclik Messages postés 3872 Date d'inscription   Statut Membre Dernière intervention   1 609
     
    Bonjour

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


    remplacer : maForme.Size = dimensionForm
    par
    maForme.Size = dimensionsForme
    1
    1. Damien007
       
      parfait merci
      0
  3. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    Bonjour,

    Essaye l'exemple page 80 de ce document : https://jazz.ensil.unilim.fr/outils_info/OOo_API_intro-04.pdf
    0
    1. Damien007
       
      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.
      0
  4. Damien007
     
    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
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. OOoForum Messages postés 3871 Date d'inscription   Statut Membre Dernière intervention   965
     
    "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

    .
    0
    1. Damien007
       
      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
      0
      1. OOoForum Messages postés 3871 Date d'inscription   Statut Membre Dernière intervention   965 > Damien007
         
        La macro fait référence à du contenu dans un document.
        Sans fournir ce dernier, comment voulez-vous qu'on fasse ?
        0
      2. Damien007 > OOoForum Messages postés 3871 Date d'inscription   Statut Membre Dernière intervention  
         
        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
        0
  7. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
     
    hello
    vérifier Outils -> Options -> Libreoffice -> Sécurité -> Sécurité des macros
    0
    1. Damien007
       
      merci pour cette réponse, j'avais effectivement vérifié ça.
      0