Re: [fr-users] [macro][calc]
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
Re: [fr-users] [macro][calc]
(oups) inverser (1) et (2) pour comprendre ;) 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 > > Yves > > Le ven. 14 juin 2024 à 06:17, Bernard Siaud alias Troumad > a écrit : > >> Le 13/06/2024 à 23:34, yves dutrieux a écrit : >> > Bonjour bernard, >> > >> > peux-tu nous indiquer ce qui se trouve exactement dans la cellule à la >> > position 1,4 car d'après le message d'erreur, on dirait que tu ne >> > mentionnes pas d'extension au nom du fichier, simplement un numéro ? >> >> Dans la case B5 : >> file:///home/troumad/Cours_IUT/PF/notes_PF2-Soutenance_grtous.xlsx >> >> C'est déjà ce qui m'a servi à ouvrir le document. >> >> >> > >> > ci-dessous, une fonction bâtie sur du code retrouvé sur internet et >> adapté. >> > >> > sub enregistredoc >> > rem >> -- >> > rem define variables >> > dim document as object >> > dim dispatcher as object >> > dim oDoc as object >> > dim oSheet as object >> > dim oCell as object >> > >> > dim sType as string >> > dim vCont as variant >> > ' recuperation du contenu de la cellule A1 >> > oDoc = ThisComponent.CurrentController >> > oSheet = oDoc.ActiveSheet >> > oCell = oSheet.GetCellByPosition(0,0) >> > >> > rem >> -- >> > rem get access to the document >> > document = ThisComponent.CurrentController.Frame >> > dispatcher = createUnoService("com.sun.star.frame.DispatchHelper") >> > rem >> -- >> > dim args1(1) as new com.sun.star.beans.PropertyValue >> > args1(0).Name = "URL" >> > 'args1(0).Value = "file:///c:/temp/temp.ods" >> > 'args1(0).Value = ConvertToURL("C:\temp\temp1.ods") >> > 'msgbox(oCell.string) >> > args1(0).Value = ConvertToURL(oCell.string) >> > args1(1).Name = "FilterName" >> > args1(1).Value = "calc8" >> > >> > dispatcher.executeDispatch(document, ".uno:SaveAs", "", 0, args1()) >> > >> > end sub >> > >> > Yves >> > >> > Le jeu. 13 juin 2024 à 14:47, Bernard Siaud alias Troumad < >> li...@siaud.org> >> > a écrit : >> > >> >> Bonjour >> >> >> >> Je n'arrive pas à sauvegarder un fichier ouvert et modifié par macro. >> >> >> >> Je vous montre l'ouverture, la fermeture et l'erreur générée. >> >> >> >> >> >> >> >> Voici ma version de libo : >> >> >> >> Version: 24.2.3.2 (X86_64) >> >> Build ID: 420(Build:2) >> >> CPU threads: 8; OS: Linux 6.6; UI render: default; VCL: gtk3 >> >> Locale: fr-FR (fr_FR.UTF-8); UI: fr-FR >> >> Calc: threaded >> >> >> >> >> >> J'essaie de sauver un fichier préalablement ouvert avec : >> >> >> >> >> >> vNote=StarDesktop.LoadComponentFromUrl(ConvertToUrl(page.getCellByPosition(1,4).string), >> >> >> >>> "_blank",0, args()) >> >>> >> >> Voici le code qui me gène : >> >> >> >>> args0(0).Name = "FilterName" >> >>> args0(0).Value = "MS Excel 97" >> >>> vNote.storeAsURL( >> >>> ConvertToURL(ConvertToURL(page.getCellByPosition(1,4).string)), >> args0()) >> >> Voici l'erreur qui arrive dans une boite de dialogue : >> >> >> >> Erreur d'exécution basic. >> >> >> >> une exception s'est produite : >> >> >> >> Type: com.sun.star.task.ErrorCodeIOExpetion >> >> >> >> Message: SFxBASEModel::impl_store failed: >> 0x507(Error >> >> >> >> Area:Io Class:Access Code:7) >> >> >> >> >> at/home/iurt/rpmbuild/BUILD/libreoffice-24.2.3.2/sfx2/source/doc/sfxmodel.cxx:3274 >> >> >> >> >> >> Le message est presque le même avec les versions 7.6 et 24 livrées par >> >> documentfondation. >> >> >> >> -- >> >> 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 >> >> >> > >> >> -- >> Amicalement vOOotre
Re: [fr-users] [macro][calc]
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 Yves Le ven. 14 juin 2024 à 06:17, Bernard Siaud alias Troumad a écrit : > Le 13/06/2024 à 23:34, yves dutrieux a écrit : > > Bonjour bernard, > > > > peux-tu nous indiquer ce qui se trouve exactement dans la cellule à la > > position 1,4 car d'après le message d'erreur, on dirait que tu ne > > mentionnes pas d'extension au nom du fichier, simplement un numéro ? > > Dans la case B5 : > file:///home/troumad/Cours_IUT/PF/notes_PF2-Soutenance_grtous.xlsx > > C'est déjà ce qui m'a servi à ouvrir le document. > > > > > > ci-dessous, une fonction bâtie sur du code retrouvé sur internet et > adapté. > > > > sub enregistredoc > > rem > -- > > rem define variables > > dim document as object > > dim dispatcher as object > > dim oDoc as object > > dim oSheet as object > > dim oCell as object > > > > dim sType as string > > dim vCont as variant > > ' recuperation du contenu de la cellule A1 > > oDoc = ThisComponent.CurrentController > > oSheet = oDoc.ActiveSheet > > oCell = oSheet.GetCellByPosition(0,0) > > > > rem > -- > > rem get access to the document > > document = ThisComponent.CurrentController.Frame > > dispatcher = createUnoService("com.sun.star.frame.DispatchHelper") > > rem > -- > > dim args1(1) as new com.sun.star.beans.PropertyValue > > args1(0).Name = "URL" > > 'args1(0).Value = "file:///c:/temp/temp.ods" > > 'args1(0).Value = ConvertToURL("C:\temp\temp1.ods") > > 'msgbox(oCell.string) > > args1(0).Value = ConvertToURL(oCell.string) > > args1(1).Name = "FilterName" > > args1(1).Value = "calc8" > > > > dispatcher.executeDispatch(document, ".uno:SaveAs", "", 0, args1()) > > > > end sub > > > > Yves > > > > Le jeu. 13 juin 2024 à 14:47, Bernard Siaud alias Troumad < > li...@siaud.org> > > a écrit : > > > >> Bonjour > >> > >> Je n'arrive pas à sauvegarder un fichier ouvert et modifié par macro. > >> > >> Je vous montre l'ouverture, la fermeture et l'erreur générée. > >> > >> > >> > >> Voici ma version de libo : > >> > >> Version: 24.2.3.2 (X86_64) > >> Build ID: 420(Build:2) > >> CPU threads: 8; OS: Linux 6.6; UI render: default; VCL: gtk3 > >> Locale: fr-FR (fr_FR.UTF-8); UI: fr-FR > >> Calc: threaded > >> > >> > >> J'essaie de sauver un fichier préalablement ouvert avec : > >> > >> > > vNote=StarDesktop.LoadComponentFromUrl(ConvertToUrl(page.getCellByPosition(1,4).string), > >> > >>> "_blank",0, args()) > >>> > >> Voici le code qui me gène : > >> > >>> args0(0).Name = "FilterName" > >>> args0(0).Value = "MS Excel 97" > >>> vNote.storeAsURL( > >>> ConvertToURL(ConvertToURL(page.getCellByPosition(1,4).string)), > args0()) > >> Voici l'erreur qui arrive dans une boite de dialogue : > >> > >> Erreur d'exécution basic. > >> > >> une exception s'est produite : > >> > >> Type: com.sun.star.task.ErrorCodeIOExpetion > >> > >> Message: SFxBASEModel::impl_store failed: 0x507(Error > >> > >> Area:Io Class:Access Code:7) > >> > >> > at/home/iurt/rpmbuild/BUILD/libreoffice-24.2.3.2/sfx2/source/doc/sfxmodel.cxx:3274 > >> > >> > >> Le message est presque le même avec les versions 7.6 et 24 livrées par > >> documentfondation. > >> > >> -- > >> 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 > >> > > > > -- > 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 à