[Résolu] [Base] Tri d'une liste déroulante via le choix d'une case à cocher
Modérateur : Vilains modOOs
Règles du forum
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 !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
-
GBX3366
- NOOuvel adepte

- Messages : 20
- Inscription : 05 févr. 2023 18:13
[Résolu] [Base] Tri d'une liste déroulante via le choix d'une case à cocher
Bonjour à toutes et à tous.
Débutant en Base, j'ai essayé de trouver une solution à mon problème sans programmation mais j'ai peur que cela ne soit pas possible. Me voici donc ici. J'espère que vous serez indulgent avec moi !!!
Dans mon formulaire "F_CHOIX_BAT", j'ai deux listes déroulantes actives. La deuxième est ("LISTE_CHOIX_AGE_BAT") est alimentée par une table avec uniquement 2 champs : un ID clé primaire et un champs texte correspondant à des âges (genre age de pierre, moyen-age, renaissance, ...). Je tiens à préciser qu'il s'agit d'un jeu donc aucun rapport avec notre histoire !!!
La liste est donc automatiquement triée par les ID des champs (ce que je veux) - ce qui correspond à une cohérence historique et logique. Mais compte tenu du grand nombre d'âge (plus de 20), je souhaiterais offrir à l'utilisateur la possibilité d'un tri alphabétique de la liste déroulante.
Je sais modifier la séquence SQL de la liste pour faire un tri alphabétique. Mais via les propriétés de la liste. Et non lorsque et uniquement lorsque la case à cocher à côté de la liste est activée.
Je vous remercie d'avance de votre aide et de vos suggestions.
Poste d'origine : posting.php?mode=reply&t=66690
Débutant en Base, j'ai essayé de trouver une solution à mon problème sans programmation mais j'ai peur que cela ne soit pas possible. Me voici donc ici. J'espère que vous serez indulgent avec moi !!!
Dans mon formulaire "F_CHOIX_BAT", j'ai deux listes déroulantes actives. La deuxième est ("LISTE_CHOIX_AGE_BAT") est alimentée par une table avec uniquement 2 champs : un ID clé primaire et un champs texte correspondant à des âges (genre age de pierre, moyen-age, renaissance, ...). Je tiens à préciser qu'il s'agit d'un jeu donc aucun rapport avec notre histoire !!!
La liste est donc automatiquement triée par les ID des champs (ce que je veux) - ce qui correspond à une cohérence historique et logique. Mais compte tenu du grand nombre d'âge (plus de 20), je souhaiterais offrir à l'utilisateur la possibilité d'un tri alphabétique de la liste déroulante.
Je sais modifier la séquence SQL de la liste pour faire un tri alphabétique. Mais via les propriétés de la liste. Et non lorsque et uniquement lorsque la case à cocher à côté de la liste est activée.
Je vous remercie d'avance de votre aide et de vos suggestions.
Poste d'origine : posting.php?mode=reply&t=66690
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par GBX3366 le 14 févr. 2023 19:54, modifié 3 fois.
LibreOffice7.4 - Windows sept
-
jeanmi2403
- SuppOOrter

- Messages : 1485
- Inscription : 18 janv. 2008 09:02
- Localisation : Val de Marne
Re: [Base] Tri d'une liste déroulante via le choix d'une case à cocher
Bonsoir,
j'ai tenté avec une macro, mais malheureusement, @Jeanmimi il n'est pas possible de modifier la requête SQL attachée à la liste. On n'y a même pas accès (confirmé par l'ami Xray
).
Visiblement, la liste est construite par le formulaire et affichée dans le contrôle.
La solution serait de vider la liste et de la reconstruire, en fonction de la case à cocher.
Ou, autre solution : implanter deux listes et en cacher une selon la case à cocher, comme le montre l'exemple ci-dessous.
J'ai repris l'exemple de Jeanmimi. La macro est déclenchée au changement d'état de la case à cocher...
La liste alpha est invisible au départ. Les deux listes sont bien distinctes, mais tu peux les superposer. Le code :
Bonne soirée,
j'ai tenté avec une macro, mais malheureusement, @Jeanmimi il n'est pas possible de modifier la requête SQL attachée à la liste. On n'y a même pas accès (confirmé par l'ami Xray
Visiblement, la liste est construite par le formulaire et affichée dans le contrôle.
La solution serait de vider la liste et de la reconstruire, en fonction de la case à cocher.
Ou, autre solution : implanter deux listes et en cacher une selon la case à cocher, comme le montre l'exemple ci-dessous.
J'ai repris l'exemple de Jeanmimi. La macro est déclenchée au changement d'état de la case à cocher...
La liste alpha est invisible au départ. Les deux listes sont bien distinctes, mais tu peux les superposer. Le code :
Code : Tout sélectionner
Sub BasculeTri(oEvenement as Object)
oCoche = oEvenement.Source
oFormulaire = oCoche.Model.Parent
oListe = oFormulaire.GetByName("LISTE_CHOIX_AGE_BAT")
oListeAlpha = oFormulaire.GetByName("LISTE_CHOIX_AGE_BAT_ALPHABETIQUE")
Select Case oCoche.State
Case 0 :
oListe.EnableVisible = True
oListeAlpha.EnableVisible = False
Case 1 :
oListe.EnableVisible = False
oListeAlpha.EnableVisible = True
End Select
End SubVous ne pouvez pas consulter les pièces jointes insérées à ce message.
Jean-Michel
LibO 25.2 et AoO 4.1.15 sur Windows 11 & Ubuntu 22.04
LibO 24.8 sur OpenSuse & Linux MX
LibO 25.2 et AoO 4.1.15 sur Windows 11 & Ubuntu 22.04
LibO 24.8 sur OpenSuse & Linux MX
-
GBX3366
- NOOuvel adepte

- Messages : 20
- Inscription : 05 févr. 2023 18:13
Re: [Base] Tri d'une liste déroulante via le choix d'une case à cocher
Je ne comprends pas ce que vous entendez par "on n'y a même pas accès" ?jeanmi2403 a écrit : ↑12 févr. 2023 17:07 j'ai tenté avec une macro, mais malheureusement, @Jeanmimi il n'est pas possible de modifier la requête SQL attachée à la liste. On n'y a même pas accès (confirmé par l'ami Xray).
Visiblement, la liste est construite par le formulaire et affichée dans le contrôle."
La liste (des âges) est effectivement affichée dans le contrôle (liste déroulante) mais construite via la table (des âges)
LibreOffice7.4 - Windows sept
-
GBX3366
- NOOuvel adepte

- Messages : 20
- Inscription : 05 févr. 2023 18:13
Re: [Base] Tri d'une liste déroulante via le choix d'une case à cocher
C'est effectivement la solution que je souhaiterais. Je me doute que le code doit être inséré dans la liste et faire référence à l'état de la case à cocher. Mais je débute totalement en macro et en SQL. Visiblement, il semblerait que je sois obligé de nommer les objets. Je dois avouer que je ne serais pas contre une (nouvelle) aide.jeanmi2403 a écrit : ↑12 févr. 2023 17:07 La solution serait de vider la liste et de la reconstruire, en fonction de la case à cocher.
En tout merci déjà pour la solution précédente (que je sauvegarde et garde sous le coude) : ce sera pour moi un bel exemple qui ne restera surement pas inutilisé.
LibreOffice7.4 - Windows sept
-
jeanmimi
- Grand Maître de l'OOffice

- Messages : 17219
- Inscription : 03 mars 2006 16:02
- Localisation : Venise verte
Re: [Base] Tri d'une liste déroulante via le choix d'une case à cocher
Il peut aussi y avoir une solution que j'ai vue passer dans le forum (une recherche à faire) : la case à cocher masque et affiche des sections selon son état ON ou OFF.
Une première section afficherait le contrôle de liste des âges triés selon les Id.
Une seconde section afficherait le contrôle de liste des âges triés selon l'ordre alphabétique.
Ou, comme dans cet exemple, avec des Boutons à cliquer :
Une première section afficherait le contrôle de liste des âges triés selon les Id.
Une seconde section afficherait le contrôle de liste des âges triés selon l'ordre alphabétique.
Ou, comme dans cet exemple, avec des Boutons à cliquer :
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice : Version : 25.8.4 (x64)(23 février 2026)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
-
jeanmi2403
- SuppOOrter

- Messages : 1485
- Inscription : 18 janv. 2008 09:02
- Localisation : Val de Marne
Re: [Base] Tri d'une liste déroulante via le choix d'une case à cocher
Par macro, pendant l'exécution du formulaire, on n'a pas accès (pas modifiable) à la requête SQL du contrôle (entourée sur la phote), mais uniquement à la liste construite à partir de cette requête.GBX3366 a écrit : ↑12 févr. 2023 18:26Je ne comprends pas ce que vous entendez par "on n'y a même pas accès" ?jeanmi2403 a écrit : ↑12 févr. 2023 17:07 j'ai tenté avec une macro, mais malheureusement, @Jeanmimi il n'est pas possible de modifier la requête SQL attachée à la liste. On n'y a même pas accès (confirmé par l'ami Xray).
Visiblement, la liste est construite par le formulaire et affichée dans le contrôle."
Pas seulement la table, mais une requête sur la table...La liste (des âges) est effectivement affichée dans le contrôle (liste déroulante) mais construite via la table (des âges)
Pas du tout, c'est le contraire. C'est l'événement déclenché par la case à cocher qui permet d'aller modifier la liste, si vous avez bien examiné mon exemple.Je me doute que le code doit être inséré dans la liste et faire référence à l'état de la case à cocher.
Dans ce cas, il faudraGBX3366 a écrit : ↑12 févr. 2023 18:31C'est effectivement la solution que je souhaiterais.jeanmi2403 a écrit : ↑12 févr. 2023 17:07 La solution serait de vider la liste et de la reconstruire, en fonction de la case à cocher.
- effacer le contenu de la liste
- aller lire la base et construire l'ensemble des enregistrements dans l'ordre alpha,
- puis insérer les enregistrements dans la liste
- et rafraîchir l'affichage de la liste
A plus,
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Jean-Michel
LibO 25.2 et AoO 4.1.15 sur Windows 11 & Ubuntu 22.04
LibO 24.8 sur OpenSuse & Linux MX
LibO 25.2 et AoO 4.1.15 sur Windows 11 & Ubuntu 22.04
LibO 24.8 sur OpenSuse & Linux MX
-
GBX3366
- NOOuvel adepte

- Messages : 20
- Inscription : 05 févr. 2023 18:13
Re: [Base] Tri d'une liste déroulante via le choix d'une case à cocher
D'accord, donc la case à cocher est l'élément déclencheur et l'événement qui modifiera la liste déroulante.jeanmi2403 a écrit : ↑12 févr. 2023 20:41 Pas du tout, c'est le contraire. C'est l'événement déclenché par la case à cocher qui permet d'aller modifier la liste, si vous avez bien examiné mon exemple.
Donc la case non activée (ou non cochée), liste non alphabétique et case cochée (et donc événement activé), la liste rafraichit et classée alphabétiquement. Du moins, c'est le résultat que je désire.
J'ai bien examiné votre exemple et j'ai tenté de le reprendre et l'adapter mais comme je parle aussi bien SQL que ma vache parle espagnole, le résultat n'a rien donné (hormis des fenêtres d'erreurs).
Je suis pas sur de comprendre toutes les étapes décrites et obligatoires. Ce que je comprends, c'est qu'il fautjeanmi2403 a écrit : ↑12 févr. 2023 17:07 La solution serait de vider la liste et de la reconstruire, en fonction de la case à cocher. [...]
Dans ce cas, il faudra
- effacer le contenu de la liste
- aller lire la base et construire l'ensemble des enregistrements dans l'ordre alpha,
- puis insérer les enregistrements dans la liste
- et rafraîchir l'affichage de la liste
- effacer le code SQL (ça, je peux faire)
- lire la base (?) et trier (?) dans l'ordre alphabétique
- ?
Si vous voulez bien continuer à m'aider, je vous en serais bien reconnaissant. Car j'ai l'impression de passer pour un boulet. J'aime apprendre et (essayer) de faire seul mais là, la logique de ce logiciel m'échappe tropJe continue dans cette voie?
LibreOffice7.4 - Windows sept
-
jeanmi2403
- SuppOOrter

- Messages : 1485
- Inscription : 18 janv. 2008 09:02
- Localisation : Val de Marne
Re: [Base] Tri d'une liste déroulante via le choix d'une case à cocher
Bonsoir,
Étonné de voir que la propriété ListSource de la Zone de Liste ne soit pas modifiable (je vais faire une déclaration de bogue) j'ai pensé à la remplacer par une Zone combinée, et cette fois, ça fonctionne.
Le seul problème est que l'on peut saisir autre chose qu' un élément de la liste. La macro est toujours déclenchée par la case à cocher
Il ne semble pas possible de déclencher facilement une macro depuis cette liste pour agir en fonction du statut de la coche.
Le code :
A plus,
Étonné de voir que la propriété ListSource de la Zone de Liste ne soit pas modifiable (je vais faire une déclaration de bogue) j'ai pensé à la remplacer par une Zone combinée, et cette fois, ça fonctionne.
Le seul problème est que l'on peut saisir autre chose qu' un élément de la liste. La macro est toujours déclenchée par la case à cocher
Il ne semble pas possible de déclencher facilement une macro depuis cette liste pour agir en fonction du statut de la coche.
Le code :
Code : Tout sélectionner
Sub BasculeTri(oEvenement as Object)
oCoche = oEvenement.Source '
oFormulaire = oCoche.Model.Parent ' récupération du formulaire
oListe = oFormulaire.GetByName("ZONE_CHOIX_AGE_BAT") ' récupération du contrôle Liste
Select Case oCoche.State
Case 0 :
oListe.ListSource = " SELECT ""AGE"" FROM ""T_AGE"" " ' pas de tri
Case 1 :
oListe.ListSource = " SELECT ""AGE"" FROM ""T_AGE"" ORDER BY ""AGE"" ASC" ' tri alpha
End Select
oListe.Refresh ' application de la requête
End Sub
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Jean-Michel
LibO 25.2 et AoO 4.1.15 sur Windows 11 & Ubuntu 22.04
LibO 24.8 sur OpenSuse & Linux MX
LibO 25.2 et AoO 4.1.15 sur Windows 11 & Ubuntu 22.04
LibO 24.8 sur OpenSuse & Linux MX
-
rollmops
- PassiOOnné

- Messages : 744
- Inscription : 20 déc. 2017 14:45
Re: [Base] Tri d'une liste déroulante via le choix d'une case à cocher
Bonjour,
Il serait sans doute plus simple de créer autant de listes déroulantes avec pour chaque la bonne requête.
Les masquer (propriété visible) et n'afficher que celle de la case à cocher correspondante.
A+
Il serait sans doute plus simple de créer autant de listes déroulantes avec pour chaque la bonne requête.
Les masquer (propriété visible) et n'afficher que celle de la case à cocher correspondante.
A+
OpenOffice 4.1.16 - Windows 11
+ LibO 25.8.5 (occasionnel pour test)
+ LibO 25.8.5 (occasionnel pour test)
-
jeanmi2403
- SuppOOrter

- Messages : 1485
- Inscription : 18 janv. 2008 09:02
- Localisation : Val de Marne
Re: [Base] Tri d'une liste déroulante via le choix d'une case à cocher
Bonjour,
Qui ne semble pas convenir....
A plus
C'est ce que j'avais proposé dans la première solution.
Qui ne semble pas convenir....
A plus
Jean-Michel
LibO 25.2 et AoO 4.1.15 sur Windows 11 & Ubuntu 22.04
LibO 24.8 sur OpenSuse & Linux MX
LibO 25.2 et AoO 4.1.15 sur Windows 11 & Ubuntu 22.04
LibO 24.8 sur OpenSuse & Linux MX
-
rollmops
- PassiOOnné

- Messages : 744
- Inscription : 20 déc. 2017 14:45
Re: [Base] Tri d'une liste déroulante via le choix d'une case à cocher
Je viens de faire un test avec ce code qui fonctionne sous OpenOffice :
Code : Tout sélectionner
Sub BasculeTri(oEvt as Object)
sSQL = "SELECT ""T_AGE"".""AGE"" AS ""AGE"" FROM ""T_AGE"" ""T_AGE"" "
oCoche = oEvt.Source
oFormulaire = oCoche.Model.Parent
oListe = oFormulaire.GetByName("LISTE_CHOIX_AGE_BAT")
With oListe
.ListSourceType = com.sun.star.form.ListSourceType.SQL
Select Case oCoche.State
Case 1:
'Coché
.ListSource = array(sSQL & " ORDER BY ""AGE"" ")
Case 0:
.ListSource = array(sSQL)
End Select
.refresh
End with
End SubOpenOffice 4.1.16 - Windows 11
+ LibO 25.8.5 (occasionnel pour test)
+ LibO 25.8.5 (occasionnel pour test)
-
GBX3366
- NOOuvel adepte

- Messages : 20
- Inscription : 05 févr. 2023 18:13
Re: [Base] Tri d'une liste déroulante via le choix d'une case à cocher
J'ai changé le code SQL sur la liste car, automatiquement et à la base, elle était triée par ordre alpha.jeanmi2403 a écrit : ↑12 févr. 2023 22:58 Le seul problème est que l'on peut saisir autre chose qu' un élément de la liste.
Avec ta macro, cela marche nickel. MERCI. J'ai remis, joint à mon poste d'origine, la dernière version du fichier 'GBX3366-ESSAI-V4.ods".
Par contre, effectivement, on peut saisir autre chose dans la liste. Et il ne faut pas. Comment puis-je faire selon toi ?
Dernière modification par GBX3366 le 13 févr. 2023 12:20, modifié 1 fois.
LibreOffice7.4 - Windows sept
-
GBX3366
- NOOuvel adepte

- Messages : 20
- Inscription : 05 févr. 2023 18:13
Re: [Base] Tri d'une liste déroulante via le choix d'une case à cocher
Bizarre, chez moi, il y a une erreur en ligne 4rollmops a écrit : ↑13 févr. 2023 10:53 Je viens de faire un test avec ce code qui fonctionne sous OpenOffice :Code : Tout sélectionner
Sub BasculeTri(oEvt as Object) sSQL = "SELECT ""T_AGE"".""AGE"" AS ""AGE"" FROM ""T_AGE"" ""T_AGE"" " oCoche = oEvt.Source oFormulaire = oCoche.Model.Parent oListe = oFormulaire.GetByName("LISTE_CHOIX_AGE_BAT") With oListe .ListSourceType = com.sun.star.form.ListSourceType.SQL Select Case oCoche.State Case 1: 'Coché .ListSource = array(sSQL & " ORDER BY ""AGE"" ") Case 0: .ListSource = array(sSQL) End Select .refresh End with End Sub
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice7.4 - Windows sept
-
rollmops
- PassiOOnné

- Messages : 744
- Inscription : 20 déc. 2017 14:45
Re: [Base] Tri d'une liste déroulante via le choix d'une case à cocher
Re
Si vous l'enlevez, comment fait-on pour comprendre la logique de la lecture ?
Ce n'est pas à faire car c'est justement avec le fichier précédent que j'ai travaillé.
Si vous l'enlevez, comment fait-on pour comprendre la logique de la lecture ?
Etes-vous sûr de toujours avoir un contrôle de ce nom dans votre formulaire ?
OpenOffice 4.1.16 - Windows 11
+ LibO 25.8.5 (occasionnel pour test)
+ LibO 25.8.5 (occasionnel pour test)
-
GBX3366
- NOOuvel adepte

- Messages : 20
- Inscription : 05 févr. 2023 18:13
Re: [Base] Tri d'une liste déroulante via le choix d'une case à cocher
Sincérement désolé. Comme tout un chacun, j'essaie d'apprendre de mes erreurs.
Effectivement, le problème venait de là. J'ai changé le nom du formulaire. Mais j'ai toujours une erreur. Cette fois, en ligne 11
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice7.4 - Windows sept
-
rollmops
- PassiOOnné

- Messages : 744
- Inscription : 20 déc. 2017 14:45
Re: [Base] Tri d'une liste déroulante via le choix d'une case à cocher
Pas de problème sous OpenOffice, le code que je donne fonctionne
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
OpenOffice 4.1.16 - Windows 11
+ LibO 25.8.5 (occasionnel pour test)
+ LibO 25.8.5 (occasionnel pour test)
-
jeanmi2403
- SuppOOrter

- Messages : 1485
- Inscription : 18 janv. 2008 09:02
- Localisation : Val de Marne
Re: [Base] Tri d'une liste déroulante via le choix d'une case à cocher
Salut,
A plus
ça fonctionne avec OpenOffice, il y a un Bug dans LibreOffice... (signalé hier)
Je suis remonté jusqu'à la 7.1, qui avait déjà le bug. Scandaleux !!!jeanmi2403 (le 12/02)post_id=369331 a écrit :12 févr. 2023 22:58 Étonné de voir que la propriété ListSource de la Zone de Liste ne soit pas modifiable (je vais faire une déclaration de bogue)
| Ajout : @Rollmops : tu utilise quel logiciel pour tes animations Gif ? |
Jean-Michel
LibO 25.2 et AoO 4.1.15 sur Windows 11 & Ubuntu 22.04
LibO 24.8 sur OpenSuse & Linux MX
LibO 25.2 et AoO 4.1.15 sur Windows 11 & Ubuntu 22.04
LibO 24.8 sur OpenSuse & Linux MX
-
GBX3366
- NOOuvel adepte

- Messages : 20
- Inscription : 05 févr. 2023 18:13
Re: [Base] Tri d'une liste déroulante via le choix d'une case à cocher
Merci infiniment Messieurs jeanmi2403 et rollmops.
Merci sincèrement de votre patience, de votre temps et de votre aide. Même si je ne fais pas toujours les choses comme elles devraient être
Puisqu'il y a un problème de compatibilité avec l'une des 2 solutions mais que l'autre fonctionne, je vais donc garder celle qui fonctionne.
Je vous remercie encore une fois de votre aide. Et probablement à bientôt car mon projet est loin d'être bouclé. Même si je vais essayer d'avancer un peu seul grâce à vous (et au net !!!).
Juste une dernière demande avant de clôturer ce post. J'ai encore le problème de la saisie possible dans la liste déroulante. Selon vous, serait-il plus pertinent de ma part de faire un nouveau post sur ce sujet ? Peut-être que la solution est simple mais je ne l'ai pas encore dénichée.
Merci sincèrement de votre patience, de votre temps et de votre aide. Même si je ne fais pas toujours les choses comme elles devraient être
Puisqu'il y a un problème de compatibilité avec l'une des 2 solutions mais que l'autre fonctionne, je vais donc garder celle qui fonctionne.
Je vous remercie encore une fois de votre aide. Et probablement à bientôt car mon projet est loin d'être bouclé. Même si je vais essayer d'avancer un peu seul grâce à vous (et au net !!!).
Juste une dernière demande avant de clôturer ce post. J'ai encore le problème de la saisie possible dans la liste déroulante. Selon vous, serait-il plus pertinent de ma part de faire un nouveau post sur ce sujet ? Peut-être que la solution est simple mais je ne l'ai pas encore dénichée.
LibreOffice7.4 - Windows sept
-
jeanmi2403
- SuppOOrter

- Messages : 1485
- Inscription : 18 janv. 2008 09:02
- Localisation : Val de Marne
Re: [Base] Tri d'une liste déroulante via le choix d'une case à cocher
Re,
J'ai parlé trop vite, il y a le même bug sur la 4.1.13 OpenOffice !!!
Et zut...
Il y a un petit avantage, en saisissant les premiers caractères, le mot se complète.
A plus
J'ai parlé trop vite, il y a le même bug sur la 4.1.13 OpenOffice !!!
Et zut...
A mon avis, pas de solution. Une Zone combinée dans laquelle on n'aurait pas le droit de saisir est une Zone de liste...
Il y a un petit avantage, en saisissant les premiers caractères, le mot se complète.
A plus
Jean-Michel
LibO 25.2 et AoO 4.1.15 sur Windows 11 & Ubuntu 22.04
LibO 24.8 sur OpenSuse & Linux MX
LibO 25.2 et AoO 4.1.15 sur Windows 11 & Ubuntu 22.04
LibO 24.8 sur OpenSuse & Linux MX
-
GBX3366
- NOOuvel adepte

- Messages : 20
- Inscription : 05 févr. 2023 18:13
Re: [Base] Tri d'une liste déroulante via le choix d'une case à cocher
A partir du code et de la macro de la zone combinée, j'ai tenté de faire, sur le même modèle, une zone de liste.jeanmi2403 a écrit : ↑13 févr. 2023 15:02 A mon avis, pas de solution. Une Zone combinée dans laquelle on n'aurait pas le droit de saisir est une Zone de liste...
Mais cela ne fonctionne pas : erreur de variable non définie !!!
Selon vous, est-ce un problème de code ? Ou bien ce type de macro ne peut pas fonctionner sur une zone de liste ?
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice7.4 - Windows sept
-
jeanmi2403
- SuppOOrter

- Messages : 1485
- Inscription : 18 janv. 2008 09:02
- Localisation : Val de Marne
Re: [Base] Tri d'une liste déroulante via le choix d'une case à cocher
B'soir,
Relis les messages précédents !
J'ai déclaré le bug : ici pour LibreOffice
et ici pour OpenOffice 4.13
Bonne soirée,
Relis les messages précédents !
J'ai déclaré le bug : ici pour LibreOffice
et ici pour OpenOffice 4.13
Bonne soirée,
Dernière modification par jeanmi2403 le 13 févr. 2023 23:17, modifié 1 fois.
Jean-Michel
LibO 25.2 et AoO 4.1.15 sur Windows 11 & Ubuntu 22.04
LibO 24.8 sur OpenSuse & Linux MX
LibO 25.2 et AoO 4.1.15 sur Windows 11 & Ubuntu 22.04
LibO 24.8 sur OpenSuse & Linux MX
-
GBX3366
- NOOuvel adepte

- Messages : 20
- Inscription : 05 févr. 2023 18:13
Re: [Base] Tri d'une liste déroulante via le choix d'une case à cocher
Désolé, j'étais trop focus sur le code. Et effectivement tu avais tout dit et clairement.
Me voilà donc à choisir entre garder la zone combinée à la place de la zone de liste ou faire mon projet sur OpenOffice.
Car la suite de mes joyeusetés doit être aussi implémentée via des contrôles sur des listes. Donc cela risque de devenir vite pénible.
Encore une fois merci pour tout.
Me voilà donc à choisir entre garder la zone combinée à la place de la zone de liste ou faire mon projet sur OpenOffice.
Car la suite de mes joyeusetés doit être aussi implémentée via des contrôles sur des listes. Donc cela risque de devenir vite pénible.
Encore une fois merci pour tout.
LibreOffice7.4 - Windows sept
-
rollmops
- PassiOOnné

- Messages : 744
- Inscription : 20 déc. 2017 14:45
Re: [Base] Tri d'une liste déroulante via le choix d'une case à cocher
Bonjour,
Je l'ai illustré avec un GIF qui montre que la liste est triée dès que la case est cochée.
Désolé mais chez moi, je n'ai pas de dysfonctionnement.jeanmi2403 a écrit : ↑13 févr. 2023 15:02J'ai parlé trop vite, il y a le même bug sur la 4.1.13 OpenOffice !!!
Je l'ai illustré avec un GIF qui montre que la liste est triée dès que la case est cochée.
OpenOffice 4.1.16 - Windows 11
+ LibO 25.8.5 (occasionnel pour test)
+ LibO 25.8.5 (occasionnel pour test)
-
GBX3366
- NOOuvel adepte

- Messages : 20
- Inscription : 05 févr. 2023 18:13
Re: [Base] Tri d'une liste déroulante via le choix d'une case à cocher
Je viens d'installer OpenOffice (dernière version en date ET version complète car j'ai lu que l'installation partielle de la suite entraînait des problèmes de compatibilités) et le dernier JRE. Et malgré cela, comme jeanmi, le bug est persistant. Donc, je vais laisser tomber OpenOffice et essayer d'avancer uniquement avec LibreOffice. De toute façon, compte tenu des utilisateurs potentiels, je me dois de rester sur LibreOffice.
Je vais essayer de persister sur ce projet.
MERCI A TOUS
Je vais essayer de persister sur ce projet.
MERCI A TOUS
LibreOffice7.4 - Windows sept
-
Dude
- IdOOle de la suite

- Messages : 26201
- Inscription : 03 mars 2006 07:45
- Localisation : 127.0.0.1
Re: [Base] Tri d'une liste déroulante via le choix d'une case à cocher
Salut,
On te montre que cela fonctionne sous OpenOffice.
Le code que tu montres dans ta copie écran du 13 févr. 2023 21:11 est incorrect.
Reprend celui de rollmops (13 févr. 2023 11:53) et tu verras que ça fonctionne.
Bon, on va arrêter de raconter des bêtises.
On te montre que cela fonctionne sous OpenOffice.
Le code que tu montres dans ta copie écran du 13 févr. 2023 21:11 est incorrect.
Reprend celui de rollmops (13 févr. 2023 11:53) et tu verras que ça fonctionne.
-
jeanmi2403
- SuppOOrter

- Messages : 1485
- Inscription : 18 janv. 2008 09:02
- Localisation : Val de Marne
Re: [Base] Tri d'une liste déroulante via le choix d'une case à cocher
Bonjour,
Voilà donc un comportement symptomatique sur ce forum : "chez moi ça marche". Point.
C'est après avoir pris une avoinée au sujet de ma déclaration de bug que j'ai compris où se trouve l'erreur, ou plutôt l'incohérence !!
On me répond sur Bugzilla de relire la doc de L'API et que ListSource attend un tableau (array()). Je prends note.
Sauf que la propriété ListSource d'une Zone combinée s’accommode très bien d'une requête SQL. Ce n'est pas le même objet ?
Effectivement, Xray affiche le type comme String[] pour la Liste et string pour la zone combinée. Ca m'avait échappé.
Donc on nous met une copie d'écran qui fonctionne et on nous dit que le code est incorrect, mais on se garde bien de nous préciser pourquoi !
Après tout, ça permet de découvrir tout seul le problème.
Pour une Zone de liste il faut envoyer array("la requête SQL") pour que ça fonctionne. Si on affecte directement la requête on obtient le message "Variable d'objet non définie." ce qui est bien sûr, parfaitement clair ?
Et, bien entendu, pour afficher le contenu c'est MsgBox (oListe.LIstSource(0)), car ce tableau n'a qu'un seul élément. Et qui contient la requête SQL
En fait il y a une facilité accordée (Chaîne de caractères) pour la zone combinée mais pas pour la zone de liste.
Ami @GBX3366 ton problème est résolu.
Voilà donc un comportement symptomatique sur ce forum : "chez moi ça marche". Point.
C'est après avoir pris une avoinée au sujet de ma déclaration de bug que j'ai compris où se trouve l'erreur, ou plutôt l'incohérence !!
On me répond sur Bugzilla de relire la doc de L'API et que ListSource attend un tableau (array()). Je prends note.
Sauf que la propriété ListSource d'une Zone combinée s’accommode très bien d'une requête SQL. Ce n'est pas le même objet ?
Effectivement, Xray affiche le type comme String[] pour la Liste et string pour la zone combinée. Ca m'avait échappé.
Dude a écrit :Le code que tu montres dans ta copie écran du 13 févr. 2023 21:11 est incorrect.
Donc on nous met une copie d'écran qui fonctionne et on nous dit que le code est incorrect, mais on se garde bien de nous préciser pourquoi !
Après tout, ça permet de découvrir tout seul le problème.
Pour une Zone de liste il faut envoyer array("la requête SQL") pour que ça fonctionne. Si on affecte directement la requête on obtient le message "Variable d'objet non définie." ce qui est bien sûr, parfaitement clair ?
Et, bien entendu, pour afficher le contenu c'est MsgBox (oListe.LIstSource(0)), car ce tableau n'a qu'un seul élément. Et qui contient la requête SQL
En fait il y a une facilité accordée (Chaîne de caractères) pour la zone combinée mais pas pour la zone de liste.
Ami @GBX3366 ton problème est résolu.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par jeanmi2403 le 14 févr. 2023 13:40, modifié 1 fois.
Jean-Michel
LibO 25.2 et AoO 4.1.15 sur Windows 11 & Ubuntu 22.04
LibO 24.8 sur OpenSuse & Linux MX
LibO 25.2 et AoO 4.1.15 sur Windows 11 & Ubuntu 22.04
LibO 24.8 sur OpenSuse & Linux MX
-
rollmops
- PassiOOnné

- Messages : 744
- Inscription : 20 déc. 2017 14:45
Re: [Base] Tri d'une liste déroulante via le choix d'une case à cocher
Re,
Je me suis inspiré du 1er document publié par GBX3366 mais il a ensuite retiré le fichier pour le remplacer par un autre qui comporte l'erreur.

Euh désolé mais ce n'est pas une copie écran que j'ai mis mais j'ai publié du code.jeanmi2403 a écrit : ↑14 févr. 2023 11:18Donc on nous met une copie d'écran qui fonctionne et on nous dit que le code est incorrect,
Je me suis inspiré du 1er document publié par GBX3366 mais il a ensuite retiré le fichier pour le remplacer par un autre qui comporte l'erreur.
OpenOffice 4.1.16 - Windows 11
+ LibO 25.8.5 (occasionnel pour test)
+ LibO 25.8.5 (occasionnel pour test)
-
GBX3366
- NOOuvel adepte

- Messages : 20
- Inscription : 05 févr. 2023 18:13
Re: [Base] Tri d'une liste déroulante via le choix d'une case à cocher
Un merci à rollmops
et un GRAND merci à jeanmi2403
pour m'avoir permis de solutionner le problème.
La solution est donc effective avec une ZONE DE LISTE (et non une ZONE COMBINÉE) ET sur LIBREOFFICE (et non uniquement sur OPENOFFICE). Le code la macro a été un peu simplifié et adapté à LibreOffice (pour éviter les bugs). Vous le trouverez dans le fichier ci-dessous.
Si cela peut servir à quelqu'un, n'oubliez pas d'indiqué le chiffre 0 dans le champ lié sur le contrôle de la liste. Sinon, une fois la liste triée par la case à cocher, elle ne pourra pas revenir à son état initial si la case est décochée.
Encore merci au forum.
La solution est donc effective avec une ZONE DE LISTE (et non une ZONE COMBINÉE) ET sur LIBREOFFICE (et non uniquement sur OPENOFFICE). Le code la macro a été un peu simplifié et adapté à LibreOffice (pour éviter les bugs). Vous le trouverez dans le fichier ci-dessous.
Si cela peut servir à quelqu'un, n'oubliez pas d'indiqué le chiffre 0 dans le champ lié sur le contrôle de la liste. Sinon, une fois la liste triée par la case à cocher, elle ne pourra pas revenir à son état initial si la case est décochée.
Encore merci au forum.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par GBX3366 le 15 févr. 2023 08:46, modifié 1 fois.
LibreOffice7.4 - Windows sept
-
rollmops
- PassiOOnné

- Messages : 744
- Inscription : 20 déc. 2017 14:45
Re: [Base] Tri d'une liste déroulante via le choix d'une case à cocher
Comment ça ?
Ca marche sur OpenOffice également.
OpenOffice 4.1.16 - Windows 11
+ LibO 25.8.5 (occasionnel pour test)
+ LibO 25.8.5 (occasionnel pour test)
-
GBX3366
- NOOuvel adepte

- Messages : 20
- Inscription : 05 févr. 2023 18:13
Re: [Résolu] [Base] Tri d'une liste déroulante via le choix d'une case à cocher
J'ai rajouté le uniquement (oublié) dans le post précédent.
Il fallait comprendre "et non UNIQUEMENT sur OpenOffice".
C'était juste pour faire rager certains de ce forum qui partent au quart de tour : on dirait ma femme
(C'est de l'humour - je préfère préciser, au cas où)
Il fallait comprendre "et non UNIQUEMENT sur OpenOffice".
C'était juste pour faire rager certains de ce forum qui partent au quart de tour : on dirait ma femme
(C'est de l'humour - je préfère préciser, au cas où)
LibreOffice7.4 - Windows sept