[Résolu][Calc] VBA Range : erreur sur plage nommée

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: 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 !
Avatar de l’utilisateur
Flying_Roger
NOOuvel adepte
NOOuvel adepte
Messages : 21
Inscription : 24 juil. 2021 11:28

[Résolu][Calc] VBA Range : erreur sur plage nommée

Message par Flying_Roger »


La modération vous a écrit: Titre modifié pour plus de clarté

Voici un programme tout simple pour tester l'utilisation de Range("xxxx") sur une plage nommée en Basic (traduit du VBA).
Je l'ai créé parce que j'avais une erreur dans une application plus complexe.

Code : Tout sélectionner

Option VBASupport 1
Sub Test()

'MaDate est un nom de plage qui correspond à la cellule B1
'Tout fonctionne dans Excel
'Seul première instruction fonctionne dans OO/Scalc ou dans LO/Scalc

    MsgBox Range("B1").Text
    MsgBox Range("MaDate").Text

End Sub
Est-ce que Range ne serait pas supporté dans OO quand il se réfère à une plage nommée ou bien j'ai commis une erreur ?
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par Flying_Roger le 01 août 2021 10:07, modifié 1 fois.
Roger
LibreOffice7.0.6.2 (x64) - OpenOffice 4.1.10 - Windows 10
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25175
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc] Range en erreur sur plage nommée

Message par Dude »

Salut,
Flying_Roger a écrit :st-ce que Range ne serait pas supporté dans OO quand il se réfère à une plage nommée
Ca fonctionne sous OpenOffice 4.1.10 et Windows 10 x64 Pro.
no_problemo.gif
Je vois juste que le classeur ODS est une conversion d'un XLS via le dérivé LibO.

Comme toujours tu viens de poster la question qui tue.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Avatar de l’utilisateur
Flying_Roger
NOOuvel adepte
NOOuvel adepte
Messages : 21
Inscription : 24 juil. 2021 11:28

[Résolu][Calc] VBA Range : erreur sur plage nommée

Message par Flying_Roger »

Effectivement, je viens de refaire le test dans OpenOffice en partant de scratch, donc sans importer un XLSM ni même un ODS qui aurait été généré par LibreOffice 7 et effectivement, Range fonctionne avec cette version; c'est donc un bug dans LibreOffice.
Pour le contourner, je devrais pouvoir définir une fonction RangeN qui fasse le taf avec des primitives du Basic.

Après avoir installé OO 4.1.10 (c'est la version 32 bits qui s'est installée, sans doute n'existe-t-elle pas en 64 bits), j'ai fait une brève comparaison.
Effectivement, les soucis que j'avais signalés dans LO fonctionnent dans OO, ce qui est un bon point.
Par contre, l'option "Code Exécutable" n'y est proposée que pour Excel et pas pour Word et PowerPoint.
Donc pas question d'ouvrir un .DOCM ou PPTM et d'espérer y exécuter les macros sans un travail sur le code.

Je ne connaissais pas (encore) la fameuse "Question qui tue".
Si je comprends bien, la philOOsophie est que si on veut utiliser (ou plutôt porter) une application XLSM dans OpenOffice, il faut supposer au départ que rien ne va fonctionner, apprécier ce qui fonctionne quand même (avec l'Option VBASupport) et remplacer le reste par du vrai code Basic. Je mets donc la balise Résolu puisque toutes les questions de ce type sont d'office résolues :lol:

Plus sérieusement, j'en conclus que ce chapitre du forum est plutôt destiné à poser des questions sur le Basic qu'à rapporter des problèmes de conversion VBA. Mais pour ceux qui comme moi seraient encore en phase de découverte du monde OO et auraient des applications VBA à porter, voici un lien bien utile pour trouver les fonctions Basic à utiliser :
https://help.libreoffice.org/7.0/fr/text/sbasic/shared/03/lib_tools.html
Roger
LibreOffice7.0.6.2 (x64) - OpenOffice 4.1.10 - Windows 10
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25175
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Résolu][Calc] VBA Range : erreur sur plage nommée

Message par Dude »

Flying_Roger a écrit :Par contre, l'option "Code Exécutable" n'y est proposée que pour Excel et pas pour Word et PowerPoint.
Quel en est l'intérêt puisque le portage VBA est incomplet et uniquement pour le tableur ?
Cette (pseudo) compatibilité est une énormité pondue à l'époque par Novell qui voulait concurrencer Microsoft.

Flying_Roger a écrit :voici un lien bien utile pour trouver les fonctions Basic à utiliser
Tu devrais lire les post-it épinglés en haut de la section.
Avatar de l’utilisateur
Flying_Roger
NOOuvel adepte
NOOuvel adepte
Messages : 21
Inscription : 24 juil. 2021 11:28

Re: [Résolu][Calc] VBA Range : erreur sur plage nommée

Message par Flying_Roger »

Sorry si quelqu'un avait déjà donné ce lien.
Peut-être qu'il pourra quand même aider quelqu'un qui n'aura pas tout lu.

Je n'ai rien vu qui ressemble à un Post-it en tête de section.
:?:
Roger
LibreOffice7.0.6.2 (x64) - OpenOffice 4.1.10 - Windows 10
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25175
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Résolu][Calc] VBA Range : erreur sur plage nommée

Message par Dude »

Flying_Roger a écrit :Je n'ai rien vu qui ressemble à un Post-it en tête de section.
:?:
a_lire_d_urgence.PNG
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Avatar de l’utilisateur
Flying_Roger
NOOuvel adepte
NOOuvel adepte
Messages : 21
Inscription : 24 juil. 2021 11:28

Re: [Résolu][Calc] VBA Range : erreur sur plage nommée

Message par Flying_Roger »

:super:
Roger
LibreOffice7.0.6.2 (x64) - OpenOffice 4.1.10 - Windows 10