[Résolu] Positionner liste déroulante selon texte présent dans la cellule

Discussions à propos du tableur Calc.
Les questions sur les macros doivent être postées dans la section dédiée en dessous.

Modérateur : Vilains modOOs

Règles du forum
Cette section est uniquement dédiée au tableur Calc. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.
Tad
Membre OOrganisé
Membre OOrganisé
Messages : 55
Inscription : 07 déc. 2022 08:42

[Résolu] Positionner liste déroulante selon texte présent dans la cellule

Message par Tad »

Bonjour,

Mes recherches n'ont rien données, mais c'est peut-être en raison de mon choix de mots clés.

Losrque qu'une cellule comporte une liste de choix, celle-ci s'affiche par défaut sur le premier élément de la liste
Est-il possible de positionner la sélection sur l'item le plus approchant de ce qui se trouve dans la cellule ? (éventuellement par macro, mais si on peut s'en dispenser ...)

Hypothèse préalable : la liste déroulante est triée alphabétiquement

Illustration :
Liste de choix
  • Abricot
  • Ananas
  • Banane
  • Mandarine
  • Melon
  • Pastèque
  • Pêche
  • Kiwi
Dans une cellule, si on tape, avant de dérouler la liste :
  • Ban → le terme banane est sélectionné
  • Mangu → le terme Mandarine est sélectionné
  • Poi → c'est le terme Pêche qui serait sélectionné
On peut le faire APRÈS avoir ouvert la liste (on clique sur la flèche d'ouverture, on tape, et c'est magique).
Ce que j'aimerai c'est le faire "avant" de dérouler la liste (c'est pour chercher dans plus d'un millier de références, dont la codification n'est pas toujours uniforme [un tiret "-" remplacé par un underscore "_", un zéro qui a été transformé en lettre "O" à la saisie, etc]). Là encore, mon propos n'est peut-être pas clair alors un petit exemple.
Imaginons une référence "A0-16"
Si l'utilisateur tape "A0-16" et valide la cellule AVANT d'utiliser la liste déroulante : la liste déroulante se positionne bien sur la référence
Si l'utilisateur tape "A0-16" et NE valide PAS : la liste, en s'ouvrant, se positionne au début des références
Si l'utilisateur tape "A0_16" : la liste s'ouvre aussi au début des références, que l'utilisateur ait ou pas validé la cellule par entrée.

Merci pour les pistes que vous me donnerez à explorer !
LibreOffice 24.2.7.2 - Linux Mint Mate 22.2
Avatar de l’utilisateur
Dolev
SuppOOrter
SuppOOrter
Messages : 1202
Inscription : 19 août 2018 05:20

Re: Positionner liste déroulante selon texte présent dans la cellule

Message par Dolev »

Bonjour,

Il faut fournir un document permettant de voir si ce que vous employez est une liste de validité ou un contrôle de formulaire.
Open Office 4.1.16 sous Windows 11
Jeff
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 10039
Inscription : 18 sept. 2006 09:40
Localisation : France

Re: Positionner liste déroulante selon texte présent dans la cellule

Message par Jeff »

Bonjour,
Tad a écrit : ↑04 nov. 2025 09:42 Dans une cellule, si on tape, avant de dérouler la liste :

Ban → le terme banane est sélectionné
Mangu → le terme Mandarine est sélectionné
Poi → c'est le terme Pêche qui serait sélectionné
Je ne pense pas que cela soit possible, à la limite, dans une cellule, si on tape, avant de dérouler la liste :

Ban → puis raccourci clavier Ctrl+D, les termes commençant par ces lettres devraient être affichés
Man → puis raccourci clavier Ctrl+D, les termes commençant par ces lettres devraient être affichés
P→ puis raccourci clavier Ctrl+D, les termes commençant par cette lettre devraient être affichés

En dehors de ce raccourci clavier (documenté dans le tuto sur les listes déroulantes ), je ne vois pas de prime abord comment afficher une liste "approchante".
Tad a écrit : ↑04 nov. 2025 09:42 c'est pour chercher dans plus d'un millier de références, dont la codification n'est pas toujours uniforme [un tiret "-" remplacé par un underscore "_", un zéro qui a été transformé en lettre "O" à la saisie, etc
Est-ce que la solution optimale ne serait pas justement d'uniformiser cette liste ?

A +
À lire avant tout !

Pour télécharger Apache OpenOffice

AOO 4.1.17 / Debian 13 "Trixie" / Xfce
AOO 4.1.17 / Debian 11 "Bullseye" / Cinnamon
Tad
Membre OOrganisé
Membre OOrganisé
Messages : 55
Inscription : 07 déc. 2022 08:42

Re: Positionner liste déroulante selon texte présent dans la cellule

Message par Tad »

Dolev a écrit : ↑04 nov. 2025 10:32 Il faut fournir un document permettant de voir si ce que vous employez est une liste de validité ou un contrôle de formulaire.
C'est une liste de validité
Jeff a écrit : ↑04 nov. 2025 12:39 En dehors de ce raccourci clavier
pas l'impression qu'il soit employé à cette fin sur ma version / mon OS (la liste de validité est justement inspirée du 2eme post [listes en cascade]). Sur mon système, il est relié à l'action "Remplir vers le bas" quand je regarde dans Outils > Personnaliser > Clavier
 Ajout : (edit : sur celui d'au moins un collègue aussi) 
Jeff a écrit : ↑04 nov. 2025 12:39 Est-ce que la solution optimale ne serait pas justement d'uniformiser cette liste ?
Disons que j'ai certains confrères plus obtus que moi :roll:
Jeff a écrit : ↑04 nov. 2025 12:39 Je ne pense pas que cela soit possible
Tant pi, on vivra sans :wink: C'est ballot que ce comportement soit implémenté dans le moindre formulaire web mais pas dans notre Calc adoré
LibreOffice 24.2.7.2 - Linux Mint Mate 22.2
Jeff
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 10039
Inscription : 18 sept. 2006 09:40
Localisation : France

Re: Positionner liste déroulante selon texte présent dans la cellule

Message par Jeff »

Tad a écrit : ↑04 nov. 2025 14:27 pas l'impression qu'il soit employé à cette fin sur ma version / mon OS
A priori, avec Libo, ce serait plutôt Ctrl + Maj + D

Il faut bien sûr des pré-requis :
  • La liste doit être triée
  • la validité est obtenue via une formule employant une fonction DECALER
 
Capture d’écran du 2025-11-04 20-07-17.png
 
Saisie de quelques caractères suivis du raccourci clavier, j'obtiens bien une liste partielle :
 
Validite.png
 
Fichier en fin de message pour tester avec ta configuration,

A +
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
À lire avant tout !

Pour télécharger Apache OpenOffice

AOO 4.1.17 / Debian 13 "Trixie" / Xfce
AOO 4.1.17 / Debian 11 "Bullseye" / Cinnamon
Tad
Membre OOrganisé
Membre OOrganisé
Messages : 55
Inscription : 07 déc. 2022 08:42

Re: Positionner liste déroulante selon texte présent dans la cellule

Message par Tad »

Merci pour l'exemple, mais ça ne fonctionne pas ici.
La cellule D2 ne retient pas la saisie (peu importe ce que je tape, les lettre "bo" reviennent. Pour vider la cellule, pas d'autre solution que passer par "effacer le contenu", mais cela ne permet pas de saisir quoi que ce soit de plus)... Le problème doit venir de nos postes (tester sur mon post Linux et celui du collègue win11, même résultat)
LibreOffice 24.2.7.2 - Linux Mint Mate 22.2
Avatar de l’utilisateur
yclik
HédOOniste
HédOOniste
Messages : 1916
Inscription : 15 déc. 2010 08:33

Re: Positionner liste déroulante selon texte présent dans la cellule

Message par yclik »

Bonjour
A priori dans 'exemple donnée par Jeff que je salue a passage,
la formule devrait être dans la source de la validité

Code : Tout sélectionner

DECALER($A$1;EQUIV(D1&".*";$A$2:$A$8;0);0;NB.SI($A$2:$A$8;D1&".*"))
A$8 au lieu de A$6
OpenOffice 4.1.14 sous Windows 11
LibreOffice 26.2.4.2 sous windows 11
Jeff
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 10039
Inscription : 18 sept. 2006 09:40
Localisation : France

Re: Positionner liste déroulante selon texte présent dans la cellule

Message par Jeff »

yclik a écrit : ↑06 nov. 2025 10:14 A$8 au lieu de A$6
Salut yclik et merci de corriger mes coquilles :wink:

En revanche, je ne pense pas que ce soit le souci de Tad qui nous précise :
Tad a écrit : ↑06 nov. 2025 07:08 peu importe ce que je tape, les lettre "bo" reviennent
Tu confirmes un fonctionnement correct avec d'autres saisies partielles avec AOO ?
(Pas d'ordinateur sous la main pour tester)

A +
À lire avant tout !

Pour télécharger Apache OpenOffice

AOO 4.1.17 / Debian 13 "Trixie" / Xfce
AOO 4.1.17 / Debian 11 "Bullseye" / Cinnamon
Avatar de l’utilisateur
yclik
HédOOniste
HédOOniste
Messages : 1916
Inscription : 15 déc. 2010 08:33

Re: Positionner liste déroulante selon texte présent dans la cellule

Message par yclik »

Jeff a écrit : ↑06 nov. 2025 12:35 Tu confirmes un fonctionnement correct avec d'autres saisies partielles avec AOO ?
(Pas d'ordinateur sous la main pour tester)
oui mais il faut valider par entrée avant de cliquer sur la flèche
OpenOffice 4.1.14 sous Windows 11
LibreOffice 26.2.4.2 sous windows 11
Jeff
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 10039
Inscription : 18 sept. 2006 09:40
Localisation : France

Re: Positionner liste déroulante selon texte présent dans la cellule

Message par Jeff »

yclik a écrit : ↑06 nov. 2025 15:50 il faut valider par entrée avant de cliquer sur la flèche
Non reproduit avec AOO 4.1.15 sous Debian 11, après correction de la plage comme tu l'indiques, je saisis un ou plusieurs caractères (que la cellule soit vide ou pas) et j'effectue le raccourci clavier pour ouvrir directement une liste partielle.

Merci pour ton retour :super:
À lire avant tout !

Pour télécharger Apache OpenOffice

AOO 4.1.17 / Debian 13 "Trixie" / Xfce
AOO 4.1.17 / Debian 11 "Bullseye" / Cinnamon