Date: prev next · Thread: first prev next last
2012 Archives by date, by thread · List index


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.