[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 !

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

Messagepar Jul00 » 29 Mai 2019 13:56

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   AgrandirRéduire
LstNomClient = StarDesktop.CurrentComponent.getByName("liste1")
VarListe = LstNomClient.CurrentValue


Code : Tout sélectionner   AgrandirRéduire
VarListe = ThisComponement.getByName("Facture").getByName("liste1").currentvalue


Code : Tout sélectionner   AgrandirRéduire
VarListe = ThisComponement.sheets.getByName("Facture").form.getByName("liste1").currentvalue


...

Merci a vous.
Pièces jointes
Base.zip
(86.62 Kio) Téléchargé 10 fois
Dernière édition par Jul00 le 30 Mai 2019 08:55, édité 1 fois.
Apache OpenOffice 4.1.6
Windows 10 pro 64bits
Jul00
Fraîchement OOthentifié
 
Message(s) : 7
Inscrit le : 29 Mai 2019 13:18

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

Messagepar Bidouille » 29 Mai 2019 14:00

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
Bidouille
RespOOnsable forum
RespOOnsable forum
 
Message(s) : 10072
Inscrit le : 08 Nov 2005 17:23
Localisation : Brest, France

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

Messagepar Dude » 29 Mai 2019 15:49

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   AgrandirRéduire
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.
Avatar de l’utilisateur
Dude
Grand Maître de l'OOffice
Grand Maître de l'OOffice
 
Message(s) : 20778
Inscrit le : 03 Mars 2006 08:45
Localisation : 127.0.0.1

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

Messagepar Jul00 » 29 Mai 2019 19:12

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   AgrandirRéduire
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   AgrandirRéduire
XRay ThisComponment

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

et
Code : Tout sélectionner   AgrandirRéduire
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
Jul00
Fraîchement OOthentifié
 
Message(s) : 7
Inscrit le : 29 Mai 2019 13:18

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

Messagepar Piaf » 29 Mai 2019 19:32

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
Piaf
GourOOu
GourOOu
 
Message(s) : 5622
Inscrit le : 25 Nov 2011 19:07
Localisation : Guyane

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

Messagepar OOotremer971 » 29 Mai 2019 19:33

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
Ubuntu
OpenSuse Leap
Avatar de l’utilisateur
OOotremer971
HédOOniste
HédOOniste
 
Message(s) : 2002
Inscrit le : 16 Avr 2010 14:31

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

Messagepar Jul00 » 29 Mai 2019 20:54

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

j'ai donc modifier:
Code : Tout sélectionner   AgrandirRéduire
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   AgrandirRéduire
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
Jul00
Fraîchement OOthentifié
 
Message(s) : 7
Inscrit le : 29 Mai 2019 13:18

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

Messagepar Piaf » 29 Mai 2019 21:18

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.
Liste.gif
Cliquer pour l'animation
A+
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
Piaf
GourOOu
GourOOu
 
Message(s) : 5622
Inscrit le : 25 Nov 2011 19:07
Localisation : Guyane

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

Messagepar Jul00 » 29 Mai 2019 21:48

Re
j'ai testé ca:
Code : Tout sélectionner   AgrandirRéduire
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   AgrandirRéduire
VarListe = ThisComponement.CurrentController.ActiveSheet.DrawPage.Forms(FormFacture).getByName("liste1").CurrentValue
]


et

Code : Tout sélectionner   AgrandirRéduire
VarListe = ThisComponement.CurrentController.ActiveSheet.DrawPage.Forms("FormFacture").getByName("liste1").CurrentValue
]


Mais non toujours rien.
Apache OpenOffice 4.1.6
Windows 10 pro 64bits
Jul00
Fraîchement OOthentifié
 
Message(s) : 7
Inscrit le : 29 Mai 2019 13:18

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

Messagepar tintin » 29 Mai 2019 22:07

Bonjour,
Jul00 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.6 / macOS 10.14.6 Mojave
JRE-8u221 / Firefox / Safari / Thunderbird / Time Machine
Tutoriels du forum pour macOS
Pour préserver vos documents, faites régulièrement des sauvegardes.
Avatar de l’utilisateur
tintin
GourOOu
GourOOu
 
Message(s) : 6110
Inscrit le : 18 Juil 2008 16:29
Localisation : F-Oise + F-Savoie

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

Messagepar Jul00 » 30 Mai 2019 07:41

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

Code : Tout sélectionner   AgrandirRéduire
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
Jul00
Fraîchement OOthentifié
 
Message(s) : 7
Inscrit le : 29 Mai 2019 13:18

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

Messagepar micmac » 30 Mai 2019 08:22

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
Dans votre signature vous devez préciser la ou les versions exactes d'OpenOffice ou de LibreOffice et du ou des systèmes utilisés.
Exemple : AOO 4.1.6 (version imposée selon le cas) sous Win7 SP1, Win 8.1, Win 10, macOS 10.14.5, Ubuntu 18.10...
Avatar de l’utilisateur
micmac
RespOOnsable forum
RespOOnsable forum
 
Message(s) : 5964
Inscrit le : 28 Août 2010 09:45


Retour vers Macros et API

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 3 invité(s)