Le 18/11/2012 17:13, pierre-yves samyn a écrit :
Bonjour
Ton code déclare et initialise des variables mais n'exécute pas le
dialogue donc il est normal que tu n'obtiennes rien.
Ton message et le nom de ta procédure me font supposer que le
dialogue est exécuté dans une autre procédure et qu'ici tu souhaites,
le dialogue étant toujours ouvert, cliquer sur un bouton et "traiter"
le choix fait par l'utilisateur.
Si c'est bien cela, il ne faut pas re-déclarer les variables et les
initialiser. Il faut avoir déclaré la variable "contrôle" en dehors
de la procédure de manière à la rendre accessible dans toutes les
procédures du module.
La procédure valider_dlg() ci-dessous illustre cela. Elle doit être
associée
à un bouton de type "par défaut" inséré dans le dialogue.
La procédure ouvr_dlg() ci-dessous illustre comment créer et exécuter
le dialogue puis tester le résultat.
Si l'utilisateur à fermé le dialogue par Ok (le dialogue doit
comprendre un bouton de type Ok) on affiche l'élément sélectionné
dans la liste.
option explicit
Dim MonControle As Object
Sub ouvr_dlg()
Dim MonDlg As Object
DialogLibraries.LoadLibrary("Standard")
MonDlg = CreateUnoDialog(DialogLibraries.Standard.Dialog1)
MonControle = MonDlg.getControl("ListBox1")
with MonControle
.removeItems(0, .ItemCount)
.additems(thiscomponent.sheets.elementNames, 0)
end with
if MonDlg.Execute = com.sun.star.ui.dialogs.ExecutableDialogResults.OK
then
msgbox MonControle.selectedItem
end if
End Sub
sub valider_dlg()
msgbox MonControle.selectedItem
end sub
DialogListeFeuilles.ods
<http://nabble.documentfoundation.org/file/n4019331/DialogListeFeuilles.ods>
Cordialement
Pierre-Yves
--
View this message in context:
http://nabble.documentfoundation.org/Selection-dans-une-listbox-tp4019303p4019331.html
Sent from the Users mailing list archive at Nabble.com.
Pierre-Yves,
Merci pour ton aide
Je joins ci-dessous le code correct sur un bouton de type OK (label
"Valider" pour l'utilisateur)
option explicit
Dim MonControle As Object
Sub ouvr_dlg()
Dim MonDlg As Object
Dim MonDoc As Object
Dim LesFeuilles As Object
Dim LaFeuille As Object
Dim selectionFeuille As String
MonDoc = ThisComponent
DialogLibraries.LoadLibrary("Standard")
MonDlg = CreateUnoDialog(DialogLibraries.Standard.Dialog1)
MonControle = MonDlg.getControl("ListBox1")
with MonControle
.removeItems(0, .ItemCount)
.additems(thiscomponent.sheets.elementNames, 0)
end with
if MonDlg.Execute =
com.sun.star.ui.dialogs.ExecutableDialogResults.OK then
selectionFeuille = MonControle.selectedItem
LesFeuilles = MonDoc.Sheets
LaFeuille = LesFeuilles.getByName(selectionFeuille)
MonDoc.CurrentController.ActiveSheet = (LaFeuille)
end if
End Sub
Cordialement
Michel
--
Envoyez un mail à users+help@fr.libreoffice.org pour savoir comment vous désinscrire
Les archives de la liste sont disponibles à http://listarchives.libreoffice.org/fr/users/
Tous les messages envoyés sur cette liste seront archivés publiquement et ne pourront pas être
supprimés
Context
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.