[Résolu][Calc] Mise à jour ListBox suivant OptionButtons

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur: Vilains modOOs

Règles du forum
:alerte: 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 !

[Résolu][Calc] Mise à jour ListBox suivant OptionButtons

Messagepar Roby68 » 13 Jan 2019 02:00

Bonjour le Forum,

Ne trouvant pas la solution adéquat à mon projet, malgré les nombreuses pistes évoquées dans les différents forums sur les Listes déroulantes et les cases à cocher, je me retourne vers vous.

J'aimerai modifier l'emplacement de mes boutons "OptionButton" (pas les mêmes que ceux plus haut) visibles directement sur la feuille "Data" en les intégrant dans la boîte de dialogue "Recherche1".
Trois "OptionButton" permettent de faire les choix suivants pour alimenter la liste déroulante:

- Actif ( la liste des personnels ayant "Ops" = 3 )

- Futur ( la liste des personnels ayant "Ops" = 1 )

- Tous ( pas de filtre sinon NOM et Prénom par ordre alphabétique )

j'avais réussi à mettre à jour la cellule C5 dans la feuille "Parametres" suivant l'option choisie mais la liste déroulante ne se met pas à jour.
Les codes sont toujours présents.

merci d'avance à ceux qui pourront m'aider.
Bonne soirée à tous

Roby
Pièces jointes
RobyCalc.ods
(107.24 Kio) Téléchargé 8 fois
Dernière édition par toucan le 08 Fév 2019 13:48, édité 5 fois.
Raison: Ajout de l'icône
LibreOffice 5.2.6.2 "Par obligation de version".

Win 7 Pro
Avatar de l’utilisateur
Roby68
Membre OOrganisé
Membre OOrganisé
 
Message(s) : 55
Inscrit le : 09 Oct 2013 22:12

Re: [Calc] Mise à jour ListBox suivant OptionButtons

Messagepar Piaf » 13 Jan 2019 18:54

Bonjour
Très peu familier avec le tableur.
Un petit exemple de ce que j'ai compris :lol:
Je n'ai pas incorporé le tri du tableau, Tu as un exemple d'Alain de la Chaume Ici
Code : Tout sélectionner   AgrandirRéduire
Option Explicit
Dim oDlg as Object, maZone as Object

Sub Main
Dim oDoc as Object, FeuillePers as Object, oSelect as Object
Dim cellVide as Variant, y as Long
Dim Cherche As Object, trouv As Variant
   DialogLibraries.LoadLibrary("Standard")
   oDlg = CreateUnoDialog(DialogLibraries.Standard.Recherche1)
   oDoc = thisComponent
   FeuillePers = oDoc.Sheets.getByName("Personnels")
   maZone = FeuillePers.getCellRangeByName("E2:E1000")
   cellVide = maZone.queryEmptyCells().RangeAddresses
   y = cellVide(0).StartRow
   maZone = FeuillePers.getCellRangeByName("A2:B" & y)
   If oDlg.execute = com.sun.star.ui.dialogs.ExecutableDialogResults.OK Then
      If oDlg.getControl("ListBox1").SelectedItem = "" Then
         MsgBox("Vous devez sélectionner une option (Actifs, Futurs ou Tous)" & Chr(13) & "Puis sélectionner un nom dans la liste déroulante")
         Exit Sub
      End If   
      Cherche = FeuillePers.createSearchDescriptor
      With Cherche
         .SearchString = oDlg.getControl("ListBox1").SelectedItem
         .SearchType = 1
         .SearchWords = True
      End With
      trouv = FeuillePers.findFirst(Cherche)
      oSelect = FeuillePers.getCellRangeByPosition(0,trouv.CellAddress.Row,8,trouv.CellAddress.Row)
      oDoc.CurrentController.Select(oSelect)
   End If   
   oDlg.dispose()
End Sub

Sub Options(oEv as Object)
Dim i as Long, monTab() as String, n as Long
   Select Case oEv.Source.Model.Tag
      Case 1
         For i = 0 To UBound(maZone.dataArray)
            If maZone.dataArray(i)(0) = 1 Then
               reDim Preserve monTab(n)
               monTab(n) = maZone.dataArray(i)(1)
               n = n + 1
            End If   
         Next i
      Case 2
         For i = 0 To UBound(maZone.dataArray)
            reDim Preserve monTab(n)
            monTab(n) = maZone.dataArray(i)(1)
            n = n + 1
         Next i      
      Case 3
         For i = 0 To UBound(maZone.dataArray)
            If maZone.dataArray(i)(0) = 3 Then
               reDim Preserve monTab(n)
               monTab(n) = maZone.dataArray(i)(1)
               n = n + 1
            End If   
         Next i      
   End Select
   oDlg.getControl("ListBox1").Model.StringItemList = monTab()   
End Sub
A+
Pièces jointes
RobyCalc.ods
(108.72 Kio) Téléchargé 7 fois
Libre Office Version: 6.1.5 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
Piaf
GourOOu
GourOOu
 
Message(s) : 5564
Inscrit le : 25 Nov 2011 19:07
Localisation : Guyane

Re: [Calc] Mise à jour ListBox suivant OptionButtons

Messagepar Roby68 » 14 Jan 2019 21:21

Bonjour le Forum, Piaf

Le résultat attendu est de mettre le choix de la listbox dans cellule B2 de l'onglet "Data".
Le fait de pouvoir effectuer le choix avec les "OptionButton" est déjà une belle avancée. J'avais également vu le code cité mais je n'arrive pas à l'exploiter.

Ensuite c'est une recherche à partir de cette cellule qui affichera toutes les données retenue.

merci encore à toi de me permettre de m'avancer.

Bonne soirée à tous.
LibreOffice 5.2.6.2 "Par obligation de version".

Win 7 Pro
Avatar de l’utilisateur
Roby68
Membre OOrganisé
Membre OOrganisé
 
Message(s) : 55
Inscrit le : 09 Oct 2013 22:12

Re: [Calc] Mise à jour ListBox suivant OptionButtons

Messagepar Piaf » 14 Jan 2019 22:03

Bonsoir
Roby68 a écrit:Le résultat attendu est de mettre le choix de la listbox dans cellule B2 de l'onglet "Data".
Fait.
Roby68 a écrit:J'avais également vu le code cité mais je n'arrive pas à l'exploiter.
j'ai ajouter la fonction de tri d'Alain de la Chaume.
A+
Pièces jointes
RobyCalc.ods
(108.65 Kio) Téléchargé 7 fois
Libre Office Version: 6.1.5 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
Piaf
GourOOu
GourOOu
 
Message(s) : 5564
Inscrit le : 25 Nov 2011 19:07
Localisation : Guyane

Re: [Calc] Mise à jour ListBox suivant OptionButtons

Messagepar Roby68 » 14 Jan 2019 23:29

Bonsoir le Forum, Piaf

Parfait pour la cellule B2. Par contre je n'ai pas besoin qu'il aille se positionner dans l'onglet "Personnels". Simplement la copie en cellule B2 me convient pour ce test de boîte de dialogue.
Oui je suis assez exigeant tu vas me dire mais je n'ai pas trouvé la variable qui prend le choix de la liste pour essayer de la copier moi-même en B2. Je pensais à "oSelect", cela n'a pas fonctionné.

J'ai remarqué également que la boîte de dialogue est centrée dans la fenêtre Windows sous Open Office mais pas sous LibreOffice.
En effet, au boulot, on vient d'installer LibreOffice 5.2.6.2 à la place d'Open Office aujourd'hui. Pas encore familiarisé avec cette version.
Peut être là encore une option que l'on doit paramétrer quelque part.

Merci encore pour le temps passé.

Roby
LibreOffice 5.2.6.2 "Par obligation de version".

Win 7 Pro
Avatar de l’utilisateur
Roby68
Membre OOrganisé
Membre OOrganisé
 
Message(s) : 55
Inscrit le : 09 Oct 2013 22:12

Re: [Calc] Mise à jour ListBox suivant OptionButtons

Messagepar Piaf » 15 Jan 2019 12:44

Bonjour
Roby68 a écrit:Par contre je n'ai pas besoin qu'il aille se positionner dans l'onglet "Personnels". Simplement la copie en cellule B2 me convient pour ce test de boîte de dialogue.
J'ai mis en commentaire la recherche.
Roby68 a écrit:J'ai remarqué également que la boîte de dialogue est centrée dans la fenêtre Windows sous Open Office mais pas sous LibreOffice.
Le dialogue devrait être centré que ce soit sous AOO ou LibO.
A+
Pièces jointes
RobyCalc.ods
(107.2 Kio) Téléchargé 9 fois
Libre Office Version: 6.1.5 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
Piaf
GourOOu
GourOOu
 
Message(s) : 5564
Inscrit le : 25 Nov 2011 19:07
Localisation : Guyane

Re: [Calc] Mise à jour ListBox suivant OptionButtons

Messagepar Roby68 » 16 Jan 2019 10:50

Bonjour le Forum, Piaf

Merci encore pour le temps passé. Cela fonctionne très bien (sur le fichier test).
Je ne pensais pas que le centrage de la boîte de dialogue ne se faisait que par code.
Encore une petite chose, à quoi correspond le "fMenu", je ne trouve pas l'origine.

Ensuite, j'ai voulu adapter le code à la feuille d'origine et cela ne fonctionne plus, pourtant pas grand chose qui change (pour ma part).

L'erreur affichée : ligne dans la fonction TriAlpha
- redim t2(indexMaxi)
Valeur ou type de données incorrect(e). Index hors de la plage définie.

Ce qui change sur le fichier origine:

- le nom de l'onglet "Personnels" du fichier test (pourtant changé dans le code fichier origine).
- Le tri doit se faire sur A2:BP... au lieu de A2:i... moins de colonnes (sur fichier test)
- La cellule de choix de la liste (1 2 3) c'est la cellule i79 de l'onglet nommé "Paramètres" au lieu de C5 même nom d'onglet sur le fichier test.
Mais du fait que tu as intégré un tri au code, est-ce le même tri que "TriDataOps"
je n'arrive pas à trouver à quoi correspond toutes les valeurs (trop compliqué pour moi).

merci encore pour le temps consacré.
Bonne soirée à tous
Roby
LibreOffice 5.2.6.2 "Par obligation de version".

Win 7 Pro
Avatar de l’utilisateur
Roby68
Membre OOrganisé
Membre OOrganisé
 
Message(s) : 55
Inscrit le : 09 Oct 2013 22:12

Re: [Calc] Mise à jour ListBox suivant OptionButtons

Messagepar Piaf » 17 Jan 2019 11:52

Bonjour
Roby68 a écrit:Encore une petite chose, à quoi correspond le "fMenu"
Strictement à rien, c'est une procédure que j'avais copié dans une base de données comme aide mémoire pour le positionnement du dialogue et que j'ai oublié d'effacer.
Après pour les erreurs rencontrées, il faudrait que tu mettes en ligne un fichier (sans données confidentielles) mais avec la même structure que ton fichier de travail.
A+
Libre Office Version: 6.1.5 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
Piaf
GourOOu
GourOOu
 
Message(s) : 5564
Inscrit le : 25 Nov 2011 19:07
Localisation : Guyane

Re: [Calc] Mise à jour ListBox suivant OptionButtons

Messagepar Roby68 » 17 Jan 2019 14:32

Bonjour le Forum, Piaf

Ok pour le "fMenu".
En ce qui concerne mes erreurs, j'ai effectué l'import de tous mes onglets et agencement du fichier origine sur le fichier test que tu as modifié, et ca marche. Je ne saurai pas pourquoi pour l'instant.
J'essaye de rendre le fichier incriminé neutre et le mettrais en ligne.
Merci dans tous les cas pour l'avancé effectué.

Bonne fin d'après midi
Roby
LibreOffice 5.2.6.2 "Par obligation de version".

Win 7 Pro
Avatar de l’utilisateur
Roby68
Membre OOrganisé
Membre OOrganisé
 
Message(s) : 55
Inscrit le : 09 Oct 2013 22:12


Retour vers Macros et API

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 10 invité(s)