Re: [fr-users] [macro][calc]

2024-06-15 Par sujet Bernard Siaud alias Troumad

je ne comprends pas tout...

Le 15/06/2024 à 12:26, yves dutrieux a écrit :

Bonjour,

Chez moi ce code fonctionne si j'exécute la routine avec les modifs
suivantes (je répond NON à changer les fichiers).
j'utilise ls msgbox pour être sûr que la valeur est bien celle attendue ;)

msgbox(page.getCellByPosition(1,4).string)
vNote=StarDesktop.LoadComponentFromUrl(ConvertToUrl(page.getCellByPosition(1,4).string),
"_blank",0, args())
 args0(0).Name = "FilterName"
   REM args0(0).Value = "Calc MS Excel 2007 XML"

Cette ligne est en commentaire ! je ne vais pas générer un fichier excel

   args0(0).Value = "calc8"

mais un fichier calc !

rem vNote.storeAsURL(
ConvertToURL(page.getCellByPosition(1,4).string+".xlsx"), args0())
msgbox(page.getCellByPosition(1,4).string)
vNote.storeAsURL( ConvertToURL(page.getCellByPosition(1,4).string), args0())
REM enregistredoc(vNote)

NB: en utilisant ton code, on génère un fichier XLSX mais avec du contenu
ODS (format calc8), donc excel saura pas relire car l'extension ne
correspond pas au format.
Linux, va le comprendre car il ne se base pas sur l'extension
NB2: je vois que tu utilises les noms "url" dans ta feuille, je trouve
qu'il serait plus simple pour l'utilisateur d'utiliser les nom "normaux" du
système (dans ton cas : /home/troumad/xxx.xlsx) et dans ton code, utiliser
la fonction converttourl pour faire la conversion adéquate.  Pour moi,
l'utilisateur n'a pas à connaitre la complexité qui se cache derrière ;)
C'est le retour de la fenêtre de dialogue pour récupérer le nom. C'est 
pour ça que la page est protégée en écriture.

pr : info, je teste sous windows, si tu as tjrs le problème, je testerais
sur mon linux pour valider.


C'est un test à faire. J'ai un indice qui me pousse à croire que c'est 
par là qu'il faut chercher. En effet, si je remplace



vNote.storeAsURL( "/home/troumad/sortie.ods", args0())

par


    vNote.store()

J'ai une erreur qui me dit :


Cette opération n'est pas prise en charge par ce système d'exploitation

Ceci semble louche...


Yves



--
Amicalement vOOotre  Troumad Alias Bernard SIAUD
mon site : http://troumad.org : AD maths WEB...
Pour la liberté http://www.developpez.net/forums/f17/systemes/linux/ 
N'envoyez que des documents avec des formats ouverts, comme 
http://fr.libreoffice.org


--
Envoyez un mail à users+unsubscr...@fr.libreoffice.org pour vous désinscrire
Les archives de la liste sont disponibles à 
https://listarchives.libreoffice.org/fr/users/
Privacy Policy: https://www.documentfoundation.org/privacy


Re: [fr-users] [macro][calc]

2024-06-15 Par sujet yves dutrieux
Bonjour,

Chez moi ce code fonctionne si j'exécute la routine avec les modifs
suivantes (je répond NON à changer les fichiers).
j'utilise ls msgbox pour être sûr que la valeur est bien celle attendue ;)

msgbox(page.getCellByPosition(1,4).string)
vNote=StarDesktop.LoadComponentFromUrl(ConvertToUrl(page.getCellByPosition(1,4).string),
"_blank",0, args())
args0(0).Name = "FilterName"
  REM args0(0).Value = "Calc MS Excel 2007 XML"
  args0(0).Value = "calc8"
rem vNote.storeAsURL(
ConvertToURL(page.getCellByPosition(1,4).string+".xlsx"), args0())
msgbox(page.getCellByPosition(1,4).string)
vNote.storeAsURL( ConvertToURL(page.getCellByPosition(1,4).string), args0())
REM enregistredoc(vNote)

NB: en utilisant ton code, on génère un fichier XLSX mais avec du contenu
ODS (format calc8), donc excel saura pas relire car l'extension ne
correspond pas au format.
Linux, va le comprendre car il ne se base pas sur l'extension
NB2: je vois que tu utilises les noms "url" dans ta feuille, je trouve
qu'il serait plus simple pour l'utilisateur d'utiliser les nom "normaux" du
système (dans ton cas : /home/troumad/xxx.xlsx) et dans ton code, utiliser
la fonction converttourl pour faire la conversion adéquate.  Pour moi,
l'utilisateur n'a pas à connaitre la complexité qui se cache derrière ;)

pr : info, je teste sous windows, si tu as tjrs le problème, je testerais
sur mon linux pour valider.

Yves

Le ven. 14 juin 2024 à 22:36, Bernard Siaud alias Troumad 
a écrit :

> Le 14/06/2024 à 20:19, yves dutrieux a écrit :
> > (oups) inverser (1) et (2) pour comprendre ;)
>
> J'avais déjà rajouté un second ".xlsx" à la fin du fichier pour éviter
> le problème.
>
> >
> > Le ven. 14 juin 2024 à 18:00, yves dutrieux  a
> écrit :
>
> >> Re,
> >>
> >> Hum, peux-tu expliquer exactement comment tu fais car tu dis que c'est
> le
> >> lien que tu utilises pour ouvrir le document.
> >> Donc je suppose que lorsque ce dernier est ouvert, c'est un autre
> document
> >> ?
> >> et ensuite tu essaies d'enregistrer (1) via ce nouveau document ou (2)
> via
> >> le premier qui a servi à ouvrir ??
> >> Si (1), dans le code, tu dois bien indiquer le nouveau document lorsque
> tu
> >> enregistres (et pas activeworkbook par exemple.).
> >>Si (1) et que tu es avec sur le premier document, alors comme ton
> >> nouveau document est ouvert, il y a risque d'erreur car le document est
> >> déjà ouvert.
> >> si (2), c'est donc la cellule de ce nouveau document qui contient aussi
> le
> >> nom du fichier (lui-même donc ? )
> >>
> >> C'est sûr qu'avec le document et le code, ce serait plus facile à
> >> débugger
>
> Il contient plus de 200 lignes d'informations confidentielles...
>
> J'ai réduit le fichier et la macro au minimum :
>
> https://troumad.org/OOo/temp1.ods
>
> La macro proposée enregistre bien le document qui contient la macro,
> mais pas le document annexe que j'ai ouvert et modifié. Et, là, je ne
> vois pas comment faire.
>
> >>
> >> Yves
>
> --
> Amicalement vOOotre  Troumad Alias Bernard SIAUD
> mon site : http://troumad.org : AD maths WEB...
> Pour la liberté http://www.developpez.net/forums/f17/systemes/linux/
> N'envoyez que des documents avec des formats ouverts, comme
> http://fr.libreoffice.org
>
> --
> Envoyez un mail à users+unsubscr...@fr.libreoffice.org pour vous
> désinscrire
> Les archives de la liste sont disponibles à
> https://listarchives.libreoffice.org/fr/users/
> Privacy Policy: https://www.documentfoundation.org/privacy
>


-- 
web site : http://www.molenbaix.com

-- 
Envoyez un mail à users+unsubscr...@fr.libreoffice.org pour vous désinscrire
Les archives de la liste sont disponibles à 
https://listarchives.libreoffice.org/fr/users/
Privacy Policy: https://www.documentfoundation.org/privacy