[Résolu][Calc] repertoire par defaut ou choisi par folderpicker

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 !
cedric86fr
Membre OOrganisé
Membre OOrganisé
Messages : 85
Inscription : 22 avr. 2022 13:28

[Résolu][Calc] repertoire par defaut ou choisi par folderpicker

Message par cedric86fr »

Bonjour,

Je souhaite proposer un répertoire par défaut ou donner la possibilité à l'utilisateur de définir le répertoire.

Pour le fichier test, j'ai un bouton qui renvoie vers un folderpicker et un autre qui devrait afficher le chemin du répertoire (par défaut ou celui choisi par l'utilisateur selon les cas).

Je n'arrive pas à imbriquer les 2 parties du programme.

Code : Tout sélectionner


Function ChoixRep()

Dim FP as object, RepPersonnalise as string
RepPersonnalise = ""
FP = CreateUnoService("com.sun.star.ui.dialogs.FolderPicker")
FP.DisplayDirectory = ConvertToURL("C:/Users/" & environ("USERNAME") & "/Downloads")
FP.Description = "blabla"
FP.Title = "Choisissez le répertoire personnalisé"
If FP.execute = _
		com.sun.star.ui.dialogs.ExecutableDialogResults.OK Then
	RepPersonnalise = FP.Directory
End If


End function

Sub Test
Dim Path as String

If RepPersonnalise <>"" Then
Print RepPersonnalise
Else
RepDefaut = "C:/Temp"
Print RepDefaut
End if

End sub
Merci pour votre aide
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par cedric86fr le 23 mai 2023 06:50, modifié 1 fois.
Libreoffice 7.2.7.2.M7 (x64) (obligation de version) sur Windows 10
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25602
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc] repertoire par defaut ou choisi par folderpicker

Message par Dude »

Salut,
cedric86fr a écrit : 17 mai 2023 18:07 j'ai un bouton qui renvoie vers un folderpicker et un autre qui devrait afficher le chemin du répertoire
Relis le chapitre sur la portée des variables et comment on renvoie un résultat depuis une fonction.
cedric86fr
Membre OOrganisé
Membre OOrganisé
Messages : 85
Inscription : 22 avr. 2022 13:28

Re: [Calc] repertoire par defaut ou choisi par folderpicker

Message par cedric86fr »

Salut Dude,

J'ai regardé ça https://help.libreoffice.org/latest/fr/ ... 20300.html

En particulier "Le résultat d'une fonction est défini en affectant la valeur de retour au nom de la fonction ". J'ai donc modifié la fonction comme ceci

Code : Tout sélectionner

Function ChoixRep as String
Dim FP as object, RepPersonnalise as string
ChoixRep = ""
FP = CreateUnoService("com.sun.star.ui.dialogs.FolderPicker")
FP.DisplayDirectory = ConvertToURL("C:/Users/" & environ("USERNAME") & "/Downloads")
FP.Description = "blabla"
FP.Title = "Choisissez le répertoire personnalisé"
If FP.execute = _
		com.sun.star.ui.dialogs.ExecutableDialogResults.OK Then
	ChoixRep = FP.Directory
End If
Print ChoixRep
End function
Et "La fonction est appelée à l'aide de la syntaxe suivante : Variable = FunctionName ". J'ai modifié la procédure comme ceci

Code : Tout sélectionner

Sub Test
Dim ChoixRep as string
Dim RepPersonnalise as string
Dim Path as String

RepPersonnalise = ChoixRep

If RepPersonnalise <> "" Then
Path = RepPersonnalise
Else Path = "C:/Temp"
End If

Print Path

End sub
Mais je n'arrive toujours pas à récupérer le résultat de la fonction :?
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libreoffice 7.2.7.2.M7 (x64) (obligation de version) sur Windows 10
Avatar de l’utilisateur
jeanmi2403
SuppOOrter
SuppOOrter
Messages : 1466
Inscription : 18 janv. 2008 09:02
Localisation : Val de Marne

Re: [Calc] repertoire par defaut ou choisi par folderpicker

Message par jeanmi2403 »

Salut,
Dans la procédure Test, tu déclares une variable ChoixRep locale à cette procédure.
Quand tu affectes RepPersonnalise = ChoixRep, tu mets une variable vide dans RepPersonnalise !! :mrgreen:
Car la fonction n'est plus visible, un autre objet du même nom la masque..
Vire cette variable qui ne sert à rien et tout fonctionne... :D
Et suis le conseil de Dude !
Dude a écrit : 19 mai 2023 07:39 Relis le chapitre sur la portée des variables
A plus,
Jean-Michel
LibO 24.2 et AoO 4.1.15 sur Windows 11 & Ubuntu 22.04
LibO 24.8 sur OpenSuse & Linux MX
cedric86fr
Membre OOrganisé
Membre OOrganisé
Messages : 85
Inscription : 22 avr. 2022 13:28

Re: [Calc] repertoire par defaut ou choisi par folderpicker

Message par cedric86fr »

Bonjour Jeanmi,

Merci pour tes explications :) Maintenant cela fonctionne, mais ce n'est pas exactement ce que je voudrais faire.

L'idée est la suivante :
- si j'appuie sur le 2eme bouton "afficher répertoire" je voudrais que cela affiche le chemin par defaut c:\temp dans un premier temps (sans ouvrir le folderpicker).

- En revanche, si j'appuie sur le 1er bouton "personnaliser répertoire" je voudrais que cela ouvre le folder picker et qu'ensuite en appuyant sur le 2eme bouton "afficher répertoire" cela affiche directement le chemin personnalisé en se substituant au chemin par défaut (et sans me refaire un folderpicker comme actuellement).

En fait la personnalisation du répertoire est optionnelle.

AJOUT

J'ai trouvé ! Merci à tous les deux pour votre aide.

Code : Tout sélectionner

Global RepPersonnalise as string

Sub Test

Dim Path as String

If RepPersonnalise <> "" Then
Path = RepPersonnalise
Else Path = "C:/Temp"
End If

Print Path

End sub


Function ChoixRep
Dim FP as object
ChoixRep = ""
FP = CreateUnoService("com.sun.star.ui.dialogs.FolderPicker")
FP.DisplayDirectory = ConvertToURL("C:/Users/" & environ("USERNAME") & "/Downloads")
FP.Description = "blabla"
FP.Title = "Choisissez le répertoire personnalisé"
If FP.execute = _
		com.sun.star.ui.dialogs.ExecutableDialogResults.OK Then
	ChoixRep = FP.Directory
End If
RepPersonnalise = ChoixRep
End function
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libreoffice 7.2.7.2.M7 (x64) (obligation de version) sur Windows 10
Avatar de l’utilisateur
jeanmi2403
SuppOOrter
SuppOOrter
Messages : 1466
Inscription : 18 janv. 2008 09:02
Localisation : Val de Marne

Re: [Calc] repertoire par defaut ou choisi par folderpicker

Message par jeanmi2403 »

Bonsoir,
Donc, tu peux baliser [Résolu] en éditant le titre de ton premier message.
Petit détail : sous windows, c'est c:\temp
A plus
Jean-Michel
LibO 24.2 et AoO 4.1.15 sur Windows 11 & Ubuntu 22.04
LibO 24.8 sur OpenSuse & Linux MX