Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.
Modérateur :Vilains modOOs
Règles du forum Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
Je viens d'avoir ce message lors d'une programmation d'une macro en basic :
Erreur de syntaxe BASIC
Le programme est trop volumineux
J'ai résolu le problème est découpant la grosse fonction où ça plantait en petite fonction.
Qui a déjà eu ce problème ?
Dernière modification par micmac le 01 nov. 2019 08:26, modifié 3 fois.
Raison :[Résolu] remplace [résolu] + ajout de la coche verte
LibreOffice sous Mageia Linux Cauldron des dépôts de Mageia Cauldron (derrière version, voire version de test)
LibreOffice sous Mageia Linux Stable pour tests
Au travail : LibreOffice sous Windows (version qui peut varier d'un ordinateur à l'autre)
Merci de (re?)lire le bandeau rouge en haut de page, et d'appliquer les règles de cette section avant de poster, notamment :
Je balise correctement ma question... a écrit :Le balisage (à taper au clavier) doit bien sûr être correctement orthographié (première lettre en majuscule puis le reste en minuscules).
Le problème au départ est le même, mais la solution pour régler le problème (sauf si je ne comprends pas le vocabulaire utilisé) n'est pas la même. Et depuis 2010, j'aurais espéré une augmentation conséquente de la mémoire fournie.
En fait, j'ai du alourdir le code et rajouter du temps d'exécution avec ma méthode indiquée dans le premier post.
LibreOffice sous Mageia Linux Cauldron des dépôts de Mageia Cauldron (derrière version, voire version de test)
LibreOffice sous Mageia Linux Stable pour tests
Au travail : LibreOffice sous Windows (version qui peut varier d'un ordinateur à l'autre)
troumad a écrit :Et depuis 2010, j'aurais espéré une augmentation conséquente de la mémoire fournie.
Ma foi, si personne n'en fait la demande auprès des développeurs, l'espoir fait vivre.
Bref, ouvre un rapport et reviens en donner ici le numéro (cf. ma signature).
Mais bon, si tu te retrouves avec des modules de plus de 64 ko, il y a un problème de conception.
LibreOffice sous Mageia Linux Cauldron des dépôts de Mageia Cauldron (derrière version, voire version de test)
LibreOffice sous Mageia Linux Stable pour tests
Au travail : LibreOffice sous Windows (version qui peut varier d'un ordinateur à l'autre)
C'est bien là mon problème. Comme j'ai alourdi le code du module, si ça ne passait pas avant ça ne devrait pas passer maintenant. Et l'effet a été inverse.
J'ai comme eu l'impression que le problème venait du nombre de lignes de la fonction. Je l'ai coupée en morceau (et donc alourdi le code) et après, j'ai pu continuer de rajouter des lignes de codes. Et ça marche encore.
Je suis face à une incohérence.
LibreOffice sous Mageia Linux Cauldron des dépôts de Mageia Cauldron (derrière version, voire version de test)
LibreOffice sous Mageia Linux Stable pour tests
Au travail : LibreOffice sous Windows (version qui peut varier d'un ordinateur à l'autre)
J'ai coupé une fonction en trois fonctions, toujours dans le même module (module1). Depuis, j'ai rajouté des lignes et ça marche toujours.
Dès que j'ai le temps, je fais des tests et je passe deux fichiers avec les mêmes lignes de codes dans le même module, mais répartis différemment entre les fonctions.
LibreOffice sous Mageia Linux Cauldron des dépôts de Mageia Cauldron (derrière version, voire version de test)
LibreOffice sous Mageia Linux Stable pour tests
Au travail : LibreOffice sous Windows (version qui peut varier d'un ordinateur à l'autre)
Il y a une méthode pour connaître la taille du module ?
LibreOffice sous Mageia Linux Cauldron des dépôts de Mageia Cauldron (derrière version, voire version de test)
LibreOffice sous Mageia Linux Stable pour tests
Au travail : LibreOffice sous Windows (version qui peut varier d'un ordinateur à l'autre)
L'exemple a été plus simple à faire que ce que je le croyais.
Si tu veux un environnement pour tester le programme, je peux te passer les autres fichiers. Mais, il suffit juste de vouloir compiler.
La seule différence entre les deux fichiers, c'est que j'ai passé du code de la fonction fairefichier1 à fairefichier2. Il n'y aurait pas ce problème, le code serait bien plus simple et je n'aurais pas besoin de parcourir deux fois le fichier d'origine pour le modifier ligne après ligne.
Ceci dit, en privé, j'ai comme l'impression que quelqu'un qui touche au code est surpris par cette limitation de 64ko qu'il trouve anachronique. je vais voir c qu'il peut faire avec...
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice sous Mageia Linux Cauldron des dépôts de Mageia Cauldron (derrière version, voire version de test)
LibreOffice sous Mageia Linux Stable pour tests
Au travail : LibreOffice sous Windows (version qui peut varier d'un ordinateur à l'autre)
Au premier coup d’œil, le problème vient d'un trop grand nombre de IF imbriqués dans la même Sub. Et comme j'ignore les limitations sur le sujet, je ne te serais donc pas d'une grande utilité sur ce point
A+
En principe, toujours à jour des dernières versions dites stables AOO LibreOffice Debian 10 et 11
hello,
Comme le dit OOotremer971 ce n'est pas la taille du module qui pose problème mais le nombre de elseif imbriqués. D'après ce que j'ai pu constaté, avec le curseur qui pointe la ligne en erreur, c'est au bout de 100 elseif qu'il y a l'erreur.
Dans le programme qui fonctionne il n'y a pas plus de 100 elseif imbriqués.
c'est le fil de discussion https://forum.openoffice.org/fr/forum/v ... ux#p121535
qui a aiguillé la cause du problème sur la taille du module mais en fait c'est aussi plus de 100 elseif imbriqués qui produisait l'erreur de syntaxe. J'ai d'ailleurs fait l'essai sous LibreOffice 6.1 d'un module de plus de 180ko et plus de 3500 lignes et pas d'erreur de syntaxe.
Ami calmant, J.P
LibreOffice 7.6.2.1 et OpenOffice 4.1.15 sous windows 11
LibreOffice 24.2.0 et OpenOffice 4.1.15 sous Ubuntu 20.04
Je vais donc essayer en imbriquant des "if else" et je reviens dire ce qu'il en est.
Donc en faisant des sous catégories, j'y suis arrivé ! Comme ça, ça ira plus vite bien que ça semblait déjà instantané
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice sous Mageia Linux Cauldron des dépôts de Mageia Cauldron (derrière version, voire version de test)
LibreOffice sous Mageia Linux Stable pour tests
Au travail : LibreOffice sous Windows (version qui peut varier d'un ordinateur à l'autre)