[Résolu][Calc]Sauvegarder les éléments d'un combobox

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 !
Drake
Membre cOOnfirmé
Membre cOOnfirmé
Messages : 299
Inscription : 02 févr. 2012 00:51

[Résolu][Calc]Sauvegarder les éléments d'un combobox

Message par Drake »

Bonjour,
J'ai récupéré dans le livre "Programmation OpenOffice et LibreOffice" de B. Marcelly et L. Godard, une macro permettant d'ajouter un nouvel élément dans une Combobox.
Mais je ne trouve pas comment enregistrer ce nouvel élément à la liste des éléments existant en "dur" dans la propriété "Entrées de liste" du contrôle.
Merci de m'indiquer comment procéder.
test10.ods
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par Drake le 20 déc. 2019 22:52, modifié 1 fois.
LibreOffice 6.2.7.1 (x64), Java (64b), Windows 10 (64b)
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25181
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc]Comment acceder a "Entrées de liste" d'un combobox

Message par Dude »

Salut,

Avec 275 messages à ton compteur...
Image
https://forum.openoffice.org/fr/forum/v ... ox+ajouter
Drake
Membre cOOnfirmé
Membre cOOnfirmé
Messages : 299
Inscription : 02 févr. 2012 00:51

Re: [Calc]Comment acceder a "Entrées de liste" d'un combobox

Message par Drake »

Salut Dude,

J'ai bien entendu fait des recherches avant de poster ma demande et même après.
Je suis d'ailleurs tombé sur le lien que tu as indiqué mais comme il ne répondait pas à ma question je l'ai écarté.
Un précision stp, dans ce lien tu écris:
Dude a écrit:
Un contrôle "Zone de liste" ou "Boîte combinée" doit être rattaché à une table si tu veux que les données stockées soient conservées.
, écartes-tu définitivement la possibilité d'enrichir la propriété "Entrées de liste" du contrôle ? Est-ce bien ça ?
Je trouve en effet étonnant que l'on puisse remplir l'entrée de liste par l'EDI et pas par macro.
Dans mon cas il s'agirait de remplir cette liste d'une cinquantaine d'élément tout au plus.
LibreOffice 6.2.7.1 (x64), Java (64b), Windows 10 (64b)
Avatar de l’utilisateur
OOotremer971
ManitOOu
ManitOOu
Messages : 2744
Inscription : 16 avr. 2010 13:31

Re: [Calc]Comment acceder a "Entrées de liste" d'un combobox

Message par OOotremer971 »

Bonjour,

Tu peux ruser avec Calc en créant une expression nommée dans la zone de noms (Ctrl+F3) nommée MaListe pour la circonstance dans le fichier joint pour y stocker ta liste de noms:
Drake.png
Tu récupères le contenu de cette liste (sans guillemet et point-virgule) à la création de ton dialogue pour initialiser ta liste :

Code : Tout sélectionner

DialogLibraries.LoadLibrary( "Standard" )
	oDlgVente = CreateUnoDialog(DialogLibraries.Standard.DialogVente)
	
	'***************************************************************
	maListe = Thiscomponent.NamedRanges.GetByName("MaListe").Content
	maliste = Right(Left(maListe,len(maListe)-1),len(maListe)-2)
	l() = split(maListe,";")
	oDlgVente.getControl("ComboBox1").Model.StringItemList = l()
	'***************************************************************

	oDlgVente.getControl("ComboBox1").setFocus
	oDlgVente.Execute()
et à la fin de ta Sub AjouterElement tu sauvegardes ta nouvelle liste dans la zone de nom :

Code : Tout sélectionner

if  position < 0 then k.addItem(k.Text, k.ItemCount)
	
	'**************************************************
	list() = k.Items	
	for x = Lbound(list()) to Ubound(list())
		if x = Ubound(list()) Then
			l = l & list(x)
		else
			l = l & list(x) & ";"
		end if
	next
	l = chr(34) & l & chr(34)
	Thiscomponent.NamedRanges.GetByName("MaListe").Content = l
	'************************************************************
End Sub
A tester :
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
En principe, toujours à jour des dernières versions dites stables
AOO
LibreOffice
Debian 10 et 11
Drake
Membre cOOnfirmé
Membre cOOnfirmé
Messages : 299
Inscription : 02 févr. 2012 00:51

Re: [Calc]Comment acceder a "Entrées de liste" d'un combobox

Message par Drake »

Salut,

Merci OOotremer971, ça fonctionne très bien.
Je voudrai que les éléments de la combobox soient triés.
J'ai pensé copier les éléments de la liste dans une colonne d'une feuille, trier cette colonne (par Données/Trier) et recopier ces éléments dans la liste.
Peut-être existe-t'il une solution plus simple ?
LibreOffice 6.2.7.1 (x64), Java (64b), Windows 10 (64b)
Avatar de l’utilisateur
OOotremer971
ManitOOu
ManitOOu
Messages : 2744
Inscription : 16 avr. 2010 13:31

Re: [Calc]Comment acceder a "Entrées de liste" d'un combobox

Message par OOotremer971 »

Bonjour,

Regarde dans le livre "Programmation OpenOffice et LibreOffice" de B. Marcelly et L. Godard, Annexe B>>Routines Utilitaires>>Trier un tableau de données en Basic

A+
En principe, toujours à jour des dernières versions dites stables
AOO
LibreOffice
Debian 10 et 11
Drake
Membre cOOnfirmé
Membre cOOnfirmé
Messages : 299
Inscription : 02 févr. 2012 00:51

Re: [Calc]Comment acceder a "Entrées de liste" d'un combobox

Message par Drake »

Bonsoir OOotremer971,
Regarde dans le livre "Programmation OpenOffice et LibreOffice" de B. Marcelly et L. Godard, Annexe B>>Routines Utilitaires>>Trier un tableau de données en Basic
oui, c'est exactement ça dont j'avais besoin.
Encore merci.

test10_Mod1-1.ods
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice 6.2.7.1 (x64), Java (64b), Windows 10 (64b)