[Résolu][Calc] Zone de texte remplie en fonction de la valeur d'une autre dans un dialogue

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 !
Frédérick
Membre OOrganisé
Membre OOrganisé
Messages : 53
Inscription : 05 déc. 2017 14:17

[Résolu][Calc] Zone de texte remplie en fonction de la valeur d'une autre dans un dialogue

Message par Frédérick »

Bonjour à tous

J'ai un tableau que je devais soumettre à plusieurs utilisateurs avec un remplissage de 2 ou 3 lignes pour chacune d'entre eux.
J'ai créé le tableau, j'ai mis une ligne d'exemple afin qu'ils voient ce qui est attendu dans telle ou telle colonne, j'ai certaines colonnes qui sont calculées par rapport au contenu des autres, et j'ai présenté ce tableau aux collègues, en leur précisant bien ce qui devait figurer dedans, ce qui devait être saisi et ce qui devait être calculé ... et y'en a pas un qui remplit correctement. Y'en a qui effacent les formules, d'autres qui en ajoutent, y'en a qui mettent un nom là où on demande un identifiant ... Bref, j'en ai marre.

Donc je passe à la vitesse supérieure et je compte ne rendre le tableau remplissable que via une interface de saisie qui fera du contrôle de contenu à la volée.

Pour créer l'interface, j'utilise ma bible : le suprême de code de Dude viewtopic.php?f=15&t=11928.

Toutefois, cette fois-ci, j'ai deux textfields que j'aimerai remplir à la volée en fonction des valeurs contenues dans d'autres textfields du même formulaire.

Capture d'écran 2025-06-04 122100.png

Dans l'exemple que je joins, les champs CodeSérie et Référence (textfields cibles) sont à remplir en fonction de ce qui est saisi dans les champs de la ligne du dessus (année, public ... : textfields sources). Et évidemment, si l'utilisateur revient sur ses saisies, modifier à la volée les deux textfields concernés. Une sorte de onChange qu'on appliquerait sur les textfields sources et qui modifieraient les textfields cibles.

Il me semble que c'est un problème classique mais je n'arrive pas à trouver de réponse. Je soupçonne que je formule mal ma requête.

Pouvez m'indiquer d'une part si c'est faisable et si ça n'est pas bloqué par l'exécution modale des fenêtres, et du coup comment on fait ça ?

Merci à vous.

Cordialement

Frédérick
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par Frédérick le 05 juin 2025 07:38, modifié 3 fois.
Windows 10
LibreOffice 7.2
Et en plus, on ne m'a pas demandé mon avis :-(
Jeff
GourOOu
GourOOu
Messages : 9940
Inscription : 18 sept. 2006 09:40
Localisation : France

Re: [Calc] remplir un textfield en fonction de la valeur d'un autre dans un même formulaire

Message par Jeff »

Bonjour,

Merci de remplacer "textfield" par "champ de texte" dans ton titre, cela facilitera les futures recherches sur un forum francophone :)
Frédérick a écrit : 04 juin 2025 10:45 J'ai un tableau
Pour un tableau sous Calc ( donc hors formulaire de saisie), en restant hors macro, on se sert du contrôle de validité (qui peut être sous forme de liste) pour brider les saisies de l'utilisateur, voir [Calc] Tout sur les listes déroulantes.

Pour empêcher l'utilisateur de supprimer les formules, on protège les feuilles.

Cela peut peut-être répondre à ton besoin ?

A +
À lire avant tout !

Pour télécharger Apache OpenOffice

AOO 4.1.15 / Debian 12.10 "bookworm" / Xfce
Frédérick
Membre OOrganisé
Membre OOrganisé
Messages : 53
Inscription : 05 déc. 2017 14:17

Re: [Calc] remplir un champ de texte en fonction de la valeur d'un autre dans un même formulaire

Message par Frédérick »

j'ai modifié mon titre mais lors de mes recherches en amont de ma question, j'ai obtenu plus de réponses, y compris francophones, avec textfield qui qu'avec champ texte mais c'est le chien qui se mord la queue en effet.

Concernant l'utilisation de contrôles de validité, c'est la solution par laquelle j'ai commencé, mais il y a entre autre des validations à faire d'une cellule en fonction de la forme des données entrées dans les autres, des possibilités de pré-saisie (en ce moment, il est probable que année soit du 2025, mais à partir de septembre, ce sera sans doute du 2026) ... bref, la solution aurait été plus simple en effet mais probablement un peu moins contraignante et performante. Là, je ne veux même pas que l'utilisateur puisse choisir la ligne dans laquelle il fera sa saisie.
Mais c'est la solution sur laquelle je me rabattrai en cas de trop grande difficulté dans ce que je tente en ce moment.

Merci pour ton premier coup d'oeil.

Cordialement

Frédérick
Windows 10
LibreOffice 7.2
Et en plus, on ne m'a pas demandé mon avis :-(
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25976
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc] remplir un champ de texte en fonction de la valeur d'un autre dans un même formulaire

Message par Dude »

Salut,

Ton titre est faux. Ce n'est pas un formulaire mais une boîte de dialogue.
Explique nous l'intérêt de créer celle-ci dynamiquement ?
Frédérick
Membre OOrganisé
Membre OOrganisé
Messages : 53
Inscription : 05 déc. 2017 14:17

Re: [Calc] remplir un champ de texte en fonction de la valeur d'un autre dans une même boîte de dialogue

Message par Frédérick »

titre modifié en conséquence.

Pour la création dynamique, je t'avoue qu'il n'y a pas forcément d'intérêt à la chose. Je n'ai utilisé des boîtes de dialogue "permanentes" que lors de ma toute première macro calc, et cette fois-là, j'avais justement besoin d'une boîte dynamique dont le contenu variait en fonction de ce que je connaissais déjà et de ce qui me manquait comme information.
Depuis, ton suprême de code m'a tellement plu par sa simplicité de mise en œuvre que je n'utilise que ça.

Edit : sur ce projet, dans les prochaines lignes de la boîte de dialogue, je vais avoir des cases à cocher plus ou moins accessibles en fonction des réponses aux autres. Peut-être faut-il nécessairement une boîte dynamique du coup ?

Cordialement

Frédérick
Windows 10
LibreOffice 7.2
Et en plus, on ne m'a pas demandé mon avis :-(
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25976
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc] remplir un champ de texte en fonction de la valeur d'un autre dans une même boîte de dialogue

Message par Dude »

Refais un exemple avec un dialogue réalisé dans l'EDI.
Il y a de grandes chances qu'en faisant ça, tu résolves par toi-même ton problème.

Mais bon quand je regarde ton document, je pense que Base serait un meilleur outil qu'un tableur.
Poser une question, c'est bien. Répondre aux autres, c'est encore mieux.
Améliorez AOO et votez pour les issues
Frédérick
Membre OOrganisé
Membre OOrganisé
Messages : 53
Inscription : 05 déc. 2017 14:17

Re: [Calc] remplir un champ de texte en fonction de la valeur d'un autre dans une même boîte de dialogue

Message par Frédérick »

Je suis convaincu que Base serait un meilleur outil, et encore plus convaincu qu'un PHP-SQL serait le top. Mais je n'ai pas le droit d'utiliser ces technologies.

Je regarde pour l'EDI.

Merci

EDIT : affaire réglée, ma direction ne souhaite plus un contrôle à priori mais à posteriori. Il n'y a donc plus besoin d'interface. Je vais quand-même regarder à l'occasion en passant par l'EDI mais pas dans l'immédiat. Je passe en résolu.
Windows 10
LibreOffice 7.2
Et en plus, on ne m'a pas demandé mon avis :-(
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25976
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc] remplir un textfield en fonction de la valeur d'un autre dans un même formulaire

Message par Dude »

Frédérick a écrit : 04 juin 2025 13:24 Il n'y a donc plus besoin d'interface. Je vais quand-même regarder à l'occasion en passant par l'EDI mais pas dans l'immédiat. Je passe en résolu.
C'est dommage car les prochains qui tomberont sur ce fil seront dans une impasse sans réelle solution. :roll:
Jeff a écrit : 04 juin 2025 11:01 on se sert du contrôle de validité (qui peut être sous forme de liste) pour brider les saisies de l'utilisateur
+1
Et s'il s'agit de faire des listes imbriquées dans un dialogue, il y a ce suprême.