[Résolu][Calc] Récupérer la valeur d'une liste déroulante

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 !
Jul00
NOOuvel adepte
NOOuvel adepte
Messages : 10
Inscription : 29 mai 2019 14:18

[Résolu][Calc] Récupérer la valeur d'une liste déroulante

Message par Jul00 »

Bonjour,
je n'arrive pas a récupérer la valeur sélectionnée dans ma liste déroulante "liste1" sur ma feuille "Facture".
J'ai créer un macro que j'aimerai déclencher a chaque changement de valeur de "liste1" (nom du client), qui remplira E9;E10;E11 et F11 (adresse, CP, …) casses en jaune.

J'ai testé plusieurs choses mais rien ne fonctionne ou VarListe serait la valeur sélectionnée.

Code : Tout sélectionner

LstNomClient = StarDesktop.CurrentComponent.getByName("liste1")
VarListe = LstNomClient.CurrentValue

Code : Tout sélectionner

VarListe = ThisComponement.getByName("Facture").getByName("liste1").currentvalue

Code : Tout sélectionner

VarListe = ThisComponement.sheets.getByName("Facture").form.getByName("liste1").currentvalue
...

Merci a vous.
Pièces jointes
Base.zip
(86.62 Kio) Téléchargé 99 fois
Dernière modification par Jul00 le 30 mai 2019 09:55, modifié 1 fois.
Apache OpenOffice 4.1.6
Windows 10 pro 64bits
Avatar de l’utilisateur
Bidouille
RespOOnsable forum
RespOOnsable forum
Messages : 12198
Inscription : 08 nov. 2005 17:23
Localisation : Caen, France
Contact :

Re: Probleme récupération valeur sélectioné dans liste dérou

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 "Problème" 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é.

Merci de votre collaboration.
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25145
Inscription : 03 mars 2006 08:45
Localisation : 127.0.0.1
Contact :

Re: [Calc] Récupérer la valeur d'une liste déroulante

Message par Dude »

Salut,

Sous Calc, les contrôles de formulaire sont localisés sur la couche dessin de la feuille.
En clair, tu prends XRay qui te donnera l'arborescence des objets :

Code : Tout sélectionner

ThisComponent 
|_ CurrentController 
	|_ ActiveSheet 
		|_ DrawPage 
			|_ Forms 
				|_ liste1
Tu vois donc qu'il te manque des objets pour arriver au bout.

Mais bon, tu semble parti dans une usine à gaz.
Ton formulaire sous Calc est attaché à un ODB et il porte le même nom que ta liste.

Si tu veux des facturiers, il y en déjà dans la section Projets dont le fameux Micro-facturier.
Sûrement plus simple que de réinventer l'eau chaude.
Jul00
NOOuvel adepte
NOOuvel adepte
Messages : 10
Inscription : 29 mai 2019 14:18

Re: [Calc] Récupérer la valeur d'une liste déroulante

Message par Jul00 »

Salut,
merci pour t'as réponse.
Effectivement c'est une usine a gaz mais c'est la mienne :D

j'ai testé:

Code : Tout sélectionner

VarListe = ThisComponement.CurrentController.ActiveSheet.DrawPage.Forms.liste1.CurrentValue
ça me donne un message d'erreur "variable d'objet non définie"

pour XRay
j'ai testé:

Code : Tout sélectionner

XRay ThisComponment
et ca me donne un message "Donnée vide (empty)"

et

Code : Tout sélectionner

XRay ThisComponement.CurrentController.ActiveSheet.DrawPage.Forms
me donne un message d'erreur "variable d'objet non définie"

:cry:
Apache OpenOffice 4.1.6
Windows 10 pro 64bits
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 19:07
Localisation : Guyane

Re: [Calc] Récupérer la valeur d'une liste déroulante

Message par Piaf »

Bonjour
Sans vouloir ajouter à l'usine :)
Dude a écrit :ThisComponent
Jul00 a écrit :VarListe = ThisComponement
A+
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
Avatar de l’utilisateur
OOotremer971
ManitOOu
ManitOOu
Messages : 2744
Inscription : 16 avr. 2010 15:31

Re: [Calc] Récupérer la valeur d'une liste déroulante

Message par OOotremer971 »

Bonjour
Dude a écrit :ThisComponent
Tu a écrit :ThisComponement
mais z'aussi
ThisComponment
et encore
ThisComponement
c'est sûr que si tu rajoutes de l'inattention à la difficulté, tu vas pas simplifier la résolution du problème :? utilise le copier/coller pour éviter les erreurs
:)
En principe, toujours à jour des dernières versions dites stables
AOO
LibreOffice
Debian 10 et 11
Jul00
NOOuvel adepte
NOOuvel adepte
Messages : 10
Inscription : 29 mai 2019 14:18

Re: [Calc] Récupérer la valeur d'une liste déroulante

Message par Jul00 »

Salut,
OK,
merci de me remettre dans le droit chemin :?

j'ai donc modifier:

Code : Tout sélectionner

VarListe = ThisComponent.CurrentController.ActiveSheet.DrawPage.Forms.liste1
résultat "Valeur de propriété incorrect"

Est-il possible que cela vienne de VarListe qui est déclarée en String ?

XRay me sort des trucs, avec

Code : Tout sélectionner

XRay ThisComponent.CurrentController.ActiveSheet.DrawPage.Forms.liste1
mais je ne trouve pas la valeur sélectionnée.
Apache OpenOffice 4.1.6
Windows 10 pro 64bits
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 19:07
Localisation : Guyane

Re: [Calc] Récupérer la valeur d'une liste déroulante

Message par Piaf »

Re
Jul00 a écrit :ThisComponent.CurrentController.ActiveSheet.DrawPage
La vue de la feuille active.
Forms quel formulaire ? Peut-être qu'un getByName avec le nom du formulaire le ferait mieux.
liste1 je présume qu'il s'agit de ton contrôle zone de liste, c'est donc un objet et pas un string, le string :lol: est la valeur sélectionnée.
Un petit exemple, il n'y a qu'un formulaire dans le classeur.
Cliquer pour l'animation
Cliquer pour l'animation
A+
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
Jul00
NOOuvel adepte
NOOuvel adepte
Messages : 10
Inscription : 29 mai 2019 14:18

Re: [Calc] Récupérer la valeur d'une liste déroulante

Message par Jul00 »

Re
j'ai testé ca:

Code : Tout sélectionner

VarListe = ThisComponement.CurrentController.ActiveSheet.DrawPage.Forms(0).getByName("liste1").CurrentValue
]
Résultat: "Variable d'objet non définie"

Sachant que dans mon navigateur de formulaires j'ai:

Formulaire
---->FormFacture
----------------->liste1

J'ai fais

Code : Tout sélectionner

VarListe = ThisComponement.CurrentController.ActiveSheet.DrawPage.Forms(FormFacture).getByName("liste1").CurrentValue
]
et

Code : Tout sélectionner

VarListe = ThisComponement.CurrentController.ActiveSheet.DrawPage.Forms("FormFacture").getByName("liste1").CurrentValue
]
Mais non toujours rien.
Apache OpenOffice 4.1.6
Windows 10 pro 64bits
Avatar de l’utilisateur
tintin
GourOOu
GourOOu
Messages : 9344
Inscription : 18 juil. 2008 17:29
Localisation : F-Oise + F-Savoie

Re: [Calc] Récupérer la valeur d'une liste déroulante

Message par tintin »

Bonjour,
[b][color=#404080]Jul00[/color][/b] a écrit :c'est une usine a gaz mais c'est la mienne
Effectivement c'est toujours la vôtre car vous n'avez pas apporté les corrections suggérées ici par Piaf et OOtremer971.
AOO 4.1.15 et LibO stable 7.6.6 / macOS Intel 13.6.6 Ventura
Adoptium-temurinJDK-jre_1.8.0_402 / Firefox/Safari/Thunderbird /Time Machine+cloneCCC
Tutoriels du forum pour macOS
Pour sauvegarder vos documents c'est ceinture ET bretelles
Jul00
NOOuvel adepte
NOOuvel adepte
Messages : 10
Inscription : 29 mai 2019 14:18

Re: [Calc] Récupérer la valeur d'une liste déroulante

Message par Jul00 »

Salut,
affectivement quand on est mauvais …. :fou:

Code : Tout sélectionner

VarListe = ThisComponent.CurrentController.ActiveSheet.DrawPage.Forms(0).getByName("liste1").CurrentValue
c'est bon pour moi.
une question, a quoi correspond le 0 de Forms(0)?
Apache OpenOffice 4.1.6
Windows 10 pro 64bits
Avatar de l’utilisateur
micmac
RespOOnsable forum
RespOOnsable forum
Messages : 9225
Inscription : 28 août 2010 10:45

Re: [Calc] Récupérer la valeur d'une liste déroulante

Message par micmac »

Bonjour,

Pour clôturer le fil, éditez le titre du premier message afin d'ajouter manuellement la balise [Résolu] et cliquez sur la coche verte comme cela :

Image
Touche Ctrl de Windows = touche cmd⌘ sur Mac
Outils > Options sur Windows = OpenOffice > Préférences sur Mac
Verrouillé