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.