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.
[Résolu][Calc]Sauvegarder les éléments d'un combobox
Modérateur : Vilains modOOs
Règles du forum
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 !
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 !
-
- Membre cOOnfirmé
- Messages : 299
- Inscription : 02 févr. 2012 00:51
[Résolu][Calc]Sauvegarder les éléments d'un combobox
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)
-
- IdOOle de la suite
- Messages : 25181
- Inscription : 03 mars 2006 07:45
- Localisation : 127.0.0.1
-
- Membre cOOnfirmé
- Messages : 299
- Inscription : 02 févr. 2012 00:51
Re: [Calc]Comment acceder a "Entrées de liste" d'un combobox
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:
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.
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:
, écartes-tu définitivement la possibilité d'enrichir la propriété "Entrées de liste" du contrôle ? Est-ce bien ça ?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.
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)
-
- ManitOOu
- Messages : 2744
- Inscription : 16 avr. 2010 13:31
Re: [Calc]Comment acceder a "Entrées de liste" d'un combobox
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: Tu récupères le contenu de cette liste (sans guillemet et point-virgule) à la création de ton dialogue pour initialiser ta liste :
et à la fin de ta Sub AjouterElement tu sauvegardes ta nouvelle liste dans la zone de nom :
A tester :
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: 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()
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
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
AOO
LibreOffice
Debian 10 et 11
-
- Membre cOOnfirmé
- Messages : 299
- Inscription : 02 févr. 2012 00:51
Re: [Calc]Comment acceder a "Entrées de liste" d'un combobox
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 ?
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)
-
- ManitOOu
- Messages : 2744
- Inscription : 16 avr. 2010 13:31
Re: [Calc]Comment acceder a "Entrées de liste" d'un combobox
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+
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
AOO
LibreOffice
Debian 10 et 11
-
- Membre cOOnfirmé
- Messages : 299
- Inscription : 02 févr. 2012 00:51
Re: [Calc]Comment acceder a "Entrées de liste" d'un combobox
Bonsoir OOotremer971,
Encore merci.
oui, c'est exactement ça dont j'avais besoin.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
Encore merci.
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)