[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 !

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

Messagepar Flying_Roger » 30 Juil 2021 11:22


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   AgrandirRéduire
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 ?
Pièces jointes
PlageNommee_OO.ods
(14.09 Kio) Téléchargé 18 fois
Dernière édition par Flying_Roger le 01 Août 2021 11:07, édité 1 fois.
Roger
LibreOffice7.0.6.2 (x64) - OpenOffice 4.1.10 - Windows 10
Avatar de l’utilisateur
Flying_Roger
NOOuvel adepte
NOOuvel adepte
 
Message(s) : 21
Inscrit le : 24 Juil 2021 12:28

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

Messagepar Dude » 30 Juil 2021 16:04

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
Clic pour en voir l'animation

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.
Avatar de l’utilisateur
Dude
Grand Maître de l'OOffice
Grand Maître de l'OOffice
 
Message(s) : 22734
Inscrit le : 03 Mars 2006 08:45
Localisation : 127.0.0.1

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

Messagepar Flying_Roger » 31 Juil 2021 10:02

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 bogue 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
Flying_Roger
NOOuvel adepte
NOOuvel adepte
 
Message(s) : 21
Inscrit le : 24 Juil 2021 12:28

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

Messagepar Dude » 01 Août 2021 12:15

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
Dude
Grand Maître de l'OOffice
Grand Maître de l'OOffice
 
Message(s) : 22734
Inscrit le : 03 Mars 2006 08:45
Localisation : 127.0.0.1

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

Messagepar Flying_Roger » 01 Août 2021 12:35

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
Flying_Roger
NOOuvel adepte
NOOuvel adepte
 
Message(s) : 21
Inscrit le : 24 Juil 2021 12:28

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

Messagepar Dude » 01 Août 2021 12:45

Flying_Roger a écrit:Je n'ai rien vu qui ressemble à un Post-it en tête de section.
:?:

a_lire_d_urgence.PNG
Avatar de l’utilisateur
Dude
Grand Maître de l'OOffice
Grand Maître de l'OOffice
 
Message(s) : 22734
Inscrit le : 03 Mars 2006 08:45
Localisation : 127.0.0.1

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

Messagepar Flying_Roger » 01 Août 2021 12:48

:super:
Roger
LibreOffice7.0.6.2 (x64) - OpenOffice 4.1.10 - Windows 10
Avatar de l’utilisateur
Flying_Roger
NOOuvel adepte
NOOuvel adepte
 
Message(s) : 21
Inscrit le : 24 Juil 2021 12:28


Retour vers Macros et API

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 8 invité(s)