[Résolu][Calc] Enregistrement sous MacOS

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 !
cmoa83
NOOuvel adepte
NOOuvel adepte
Messages : 15
Inscription : 01 oct. 2018 15:47

[Résolu][Calc] Enregistrement sous MacOS

Message par cmoa83 »

bonjour, j'ai cree cette macro pour mon ancien pc sous w7 qui fonctionne tees bien mais je voulais l'adapter pour mon mac.
Lorsque je clic sur le bouton "enregistre patient" je n'arrive pas a le faire enregistre sur le dossier qui se trouve sur mon mac( Macintosh HD/Utilisateurs/Patrick/dossier patient) sachant que j'utilise le nom du patient
pouvez vous me dire ce qui cloche dans la macro :marto:
Merci

Code : Tout sélectionner

sub enregistre
    rem ----------------------------------------------------------------------
    rem definitions des variables
    rem ----------------------------------------------------------------------
    dim document   as object
    dim dispatcher as object
    rem ----------------------------------------------------------------------
    rem get access to the document
    rem ----------------------------------------------------------------------
    document   = ThisComponent.CurrentController.Frame
    dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
    rem ----------------------------------------------------------------------
    rem Récupération du contenu de la cellule B7
    rem ----------------------------------------------------------------------
    MonDoc = ThisComponent
    MaFeuil = MonDoc.CurrentController.ActiveSheet
    MonTxt = MaFeuil.GetCellRangeByName("B7").String
    rem ----------------------------------------------------------------------
    rem Enregistrement du nouveau fichier
    rem ----------------------------------------------------------------------
    dim args1(2) as new com.sun.star.beans.PropertyValue
   
    args1(0).Name = "URL"
    args1(0).Value = "file:Macintosh HD/Utilisateurs/Patrick/dossier patient/" & MonTxt & ".ods" 
    args1(1).Name = "FilterName"
    args1(1).Value = "calc8"
    args1(2).Name = "SelectionOnly"
    args1(2).Value = true

    dispatcher.executeDispatch(document, ".uno:SaveAs", "", 0, args1())

    rem ----------------------------------------------------------------------
    rem fin de la macro
    rem ----------------------------------------------------------------------

    end sub
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par micmac le 25 oct. 2018 20:31, modifié 1 fois.
Raison : Balisage
libreoffice 6.1 avec os 10.14
Avatar de l’utilisateur
Bidouille
RespOOnsable forum
RespOOnsable forum
Messages : 12226
Inscription : 08 nov. 2005 16:23
Localisation : Caen, France

Re: macro sur mac

Message par Bidouille »

Cette section a des règles très précises que vous devez obligatoirement suivre pour obtenir de l'aide. C'est indiqué dans le cadre rouge en haut de la page.

Il est demandé aux auteurs de faire précéder le titre de leur question d'une balise adéquate. Ce balisage est extrêmement important car il permet d'avoir une base de connaissance optimum en cas de recherche. Avez-vous remarqué comment étaient les autres questions postées ?

Lisez ce fil pour savoir quelle balise utiliser : http://forum.openoffice.org/fr/forum/su ... html#27295

N'oubliez pas que le terme "Macro" ou "OpenOffice" ne doit pas être employé car il est implicite. Essayer de synthétiser au mieux ce que vous cherchez à faire.

Un titre accrocheur vous permettra d'une part d'être aidé plus rapidement et d'autre part, d'enrichir notre base de connaissances.

Nous l'avons fait pour vous cette fois-ci mais lors de votre prochaine question, nous vous remercions de le faire vous-même sous peine de voir votre sujet verrouillé.
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] Enregistrement sous MacOS

Message par Dude »

Redif passée la semaine dernière à peine : https://forum.openoffice.org/fr/forum/v ... =8&t=58798
Lire le commentaire de OOotremer971 pour la solution.

Merci de faire un minimum de recherche dans ce forum la prochaine fois.
cmoa83
NOOuvel adepte
NOOuvel adepte
Messages : 15
Inscription : 01 oct. 2018 15:47

Re: [Calc] Enregistrement sous MacOS

Message par cmoa83 »

merci pour ta réponse rapide
Mais je suis un peu novice, et je ne vois pas ce qui cloche dans cette commande:
args1(0).Value = "file:Macintosh HD/Utilisateurs/Patrick/dossier patient/" & MonTxt & ".ods"
libreoffice 6.1 avec os 10.14
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] Enregistrement sous MacOS

Message par Dude »

Ta question montre que tu as (mal) lu le lien que je t'ai donné.
cmoa83 a écrit :et je ne vois pas ce qui cloche dans cette commande
Sers-toi du service OfficeFilePicker et regarde l'URL qu'il te renvoie.
cmoa83
NOOuvel adepte
NOOuvel adepte
Messages : 15
Inscription : 01 oct. 2018 15:47

Re: [Calc] Enregistrement sous MacOS

Message par cmoa83 »

Je suis un peu novice en la matière et je ne comprends pas le principe de Office FilePicker, ou je ne vois pas comment l'utiliser :(
libreoffice 6.1 avec os 10.14
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] Enregistrement sous MacOS

Message par Dude »

Exécute cette macro :

Code : Tout sélectionner

sub OuSuisJe
    oFP = createUnoService("com.sun.star.ui.dialogs.FolderPicker")
    if oFP.execute() = 0 then exit sub
    sRep = oFP.Directory
    msgbox sRep
end sub
Choisis ton répertoire et regarde la chaîne qui t'est retournée.
cmoa83
NOOuvel adepte
NOOuvel adepte
Messages : 15
Inscription : 01 oct. 2018 15:47

Re: [Calc] Enregistrement sous MacOS

Message par cmoa83 »

Merci pour ton explication pour trouver le chemin qui fonctionne a merveille.
Maintenant je n'arrive toujours pas a enregistrer quand je clique il doit y avoir un bug dans la macro peux tu m'aider pour trouver le problème
merci

Code : Tout sélectionner

sub enregistre
    rem ----------------------------------------------------------------------
    rem definitions des variables
    rem ----------------------------------------------------------------------
    dim document   as object
    dim dispatcher as object
    rem ----------------------------------------------------------------------
    rem get access to the document
    rem ----------------------------------------------------------------------
    document   = ThisComponent.CurrentController.Frame
    dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
    rem ----------------------------------------------------------------------
    rem Récupération du contenu de la cellule B7
    rem ----------------------------------------------------------------------
    MonDoc = ThisComponent
    MaFeuil = MonDoc.CurrentController.ActiveSheet
    MonTxt = MaFeuil.GetCellRangeByName("A131").String
    rem ----------------------------------------------------------------------
    rem Enregistrement du nouveau fichier
    rem ----------------------------------------------------------------------
    dim args1(2) as new com.sun.star.beans.PropertyValue
    args1(0).Name = "URL"
    args1(0).Value = "file:///localhost/Users/Patrick/Professionel/Dossier%20patiente%20Open/"& MonTxt & ".ods" 
    args1(1).Name = "FilterName"
    args1(1).Value = "calc8"
    args1(2).Name = "SelectionOnly"
    args1(2).Value = true
    

    dispatcher.executeDispatch(document, ".uno:SaveAs", "", 0, args1())

    rem ----------------------------------------------------------------------
    rem fin de la macro
    rem ----------------------------------
Dernière modification par Oukcha le 04 oct. 2018 07:25, modifié 1 fois.
Raison : Balises [code] et [/code] = lecture et sélection simplifiée de vos macros
libreoffice 6.1 avec os 10.14
cmoa83
NOOuvel adepte
NOOuvel adepte
Messages : 15
Inscription : 01 oct. 2018 15:47

Re: [Calc] Enregistrement sous MacOS

Message par cmoa83 »

bonjour
Il n'y a personne qui puisse m'aider??
Ou si il existe une autre solution a me suggérer je suis preneur
Merci
libreoffice 6.1 avec os 10.14
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] Enregistrement sous MacOS

Message par Dude »

cmoa83 a écrit :Il n'y a personne qui puisse m'aider??
Peut-être te prendre un peu par la main ?
Débogue ton code en mettant un msgbox sur le chemin que tu passes par exemple.
cmoa83
NOOuvel adepte
NOOuvel adepte
Messages : 15
Inscription : 01 oct. 2018 15:47

Re: [Calc] Enregistrement sous MacOS

Message par cmoa83 »

bonjour,
Je pense que j'ai trouver la solution maintenant en réinstallant java car il n'etait pas pris en compte par libreoffice
De plus j'ai fait un teste en changeant le dossier d'enregistrement

Code : Tout sélectionner

sub enregistre
    rem ----------------------------------------------------------------------
    rem definitions des variables
    rem ----------------------------------------------------------------------
    dim document   as object
    dim dispatcher as object
    rem ----------------------------------------------------------------------
    rem get access to the document
    rem ----------------------------------------------------------------------
    document   = ThisComponent.CurrentController.Frame
    dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
    rem ----------------------------------------------------------------------
    rem Récupération du contenu de la cellule B7
    rem ----------------------------------------------------------------------
    MonDoc = ThisComponent
    MaFeuil = MonDoc.CurrentController.ActiveSheet
    MonTxt = MaFeuil.GetCellRangeByName("B7").String
    rem ----------------------------------------------------------------------
    rem Enregistrement du nouveau fichier
    rem ----------------------------------------------------------------------
    dim args1(2) as new com.sun.star.beans.PropertyValue
   
    args1(0).Name = "URL"
    args1(0).Value = "file://localhost/Users/Patrick/Professionel/teste/"& MonTxt & ".ods"
    args1(1).Name = "FilterName"
    args1(1).Value = "calc8"
    args1(2).Name = "SelectionOnly"
    args1(2).Value = true

    dispatcher.executeDispatch(document, ".uno:SaveAs", "", 0, args1())

    rem ----------------------------------------------------------------------
    rem fin de la macro
    rem ----------------------------------------------------------------------

    end sub
donc pour moi c'est résolu
Merci pour votre aide
Dernière modification par micmac le 25 oct. 2018 20:30, modifié 1 fois.
Raison : Code mis entre balises
libreoffice 6.1 avec os 10.14