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