Empêcher saisie érite dans celllule avec déroulant

Alexico

XLDnaute Nouveau
Bonjour à tous !

Voilà, je rame pour empêcher la saisie par écriture dans une cellule qui comporte une liste déroulante.

En fait, les seules données inscriptibles dans cette cellule seraient celles de la liste qui s'affiche (obtenue en faisant Données-Validation).
Pour info, les données dans la liste sont des noms issus d'une plage de données.
Je ne m'y connais pas trop en macros, à la rigueur peut-être une fonction à valeur logique conditionnelle mais je sais pas trop comment la rédiger.


Pouvez-vous m'aider ?! Merci !
 

jeanpierre

Nous a quitté
Repose en paix
Re : Empêcher saisie érite dans celllule avec déroulant

Bonsoir Alexico et Bienvenue sur XLD,

Si, dans ta liste de validation, onglet Alerte d'erreur, la case "Quand des données non valides sont tapées" est cochée, on ne peut rien saisir d'autre que ce qui est prévu dans la liste.

Sinon, tu précises ton souci...

Bonne soirée.

Jean-Pierre
 

Alexico

XLDnaute Nouveau
Re : Empêcher saisie érite dans celllule avec déroulant

Merci, Jean-Pierre pour cette 1ere réponse rapide !

J'ai vérifié les cases cochées et ça va déjà mieux puisque je ne peux plus rentrer des noms qui ne sont pas présents dans la liste.
Cependant, je peux toujours écrire dans cette cellule, et ça m'embête car je veux permettre seulement une sélection dans la liste présentée lorsque que l'on clique dans la cellule. Pourquoi ? parce que la liste présente les noms d'une base de donnée qui sert de référence. Et puis aussi pour uniformiser la colonne (par exemple dans la liste on peut trouver Paris, mais on peut écrire dans la cellule paris (p minuscule)). L'idée pour moi est donc d'empêcher d'écrire dans la cellule (un peu comme ce que l'on trouve sur des formulaire sur internet).
 

jeanpierre

Nous a quitté
Repose en paix
Re : Empêcher saisie érite dans celllule avec déroulant

Re,

Désolé, soit je ne comprends pas soit quelque chose m'échappe, je viens de faire un test et l'on ne peux rien saisir dans la cellule...

Tu ne peux pas, en même temps ne pas pouvoir rentrer des noms et cependant pouvoir écrire... C'est la même chose, non ?

Sinon dépose nous un petit fichier exemple de ton souci, après avoir vérifié que le problème persiste, sans données confidentielles (tu modifies les noms par exemple et ou adresses, téléphone).

Tu peux le zipper, tu pourras ainsi mettre plus d'infos.si necessaire....

A te lire.

Jean-Pierre
 

Alexico

XLDnaute Nouveau
Re : Empêcher saisie érite dans celllule avec déroulant

Finalement après ton aide au sujet des cases à cocher je me suis aperçu que j'avais modifié le systeme d'alerte d'erreur en systeme d'Informations, permettant alors de laisser une saisie dans la cellule ! Ca fonctionne correctement à présent (merci Jean-Pierre :)

Cependant , j'ai un autre (petit) souci : dans la liste de sélection des noms dans la cellule, le volet est assez grand voir trop en fait car en plus des noms présents dans la liste, il y a aussi pas mal d'espace vide. En gros le volet de sélection est à moité vide (l'autre moitié est remplit de ma plage de noms).
Je sais pas si je suis clair !
Je crois que le problème viens du fait que la source des propositions de la liste est tirée d'une colonne entière (colonne A) et non d'une plage de cellule déterminée.

Alors si vous avez une astuce pour "zapper" tout ce blanc qui occupe le volet de séléction...! Merci d'avance !
 

mercibien

XLDnaute Occasionnel
Re : Empêcher saisie érite dans celllule avec déroulant

Bonjour tout le monde;
Jean Pierre ; je crois que alexico veut dire que les données qui sont obtenu par une validation d'une liste ne respectent pas la casse.
en effet je viens de tester et quand on choisit la validation des données et si on tape comme même le contenu de la cellule alors les valeurs : paris ; Paris; PARIS sont tous acceptées!
en tous cas c'est ce que j'ai compris
mes respects
 

jeanpierre

Nous a quitté
Repose en paix
Re : Empêcher saisie érite dans celllule avec déroulant

Re,

Fais une recherche avancée en haut à gauche, sous ton propre pseudo, et sous le pseudo de BOIGONTIER (la recherche), ainsi tu dois trouver ta réponse sur ce forum, sinon vois son site aussi, petite merveille en passant.....
 

ngogoisidore

XLDnaute Occasionnel
Re : Empêcher saisie érite dans celllule avec déroulant

Bonsoir,

A ma connaissance, le comportement de la cellule et du menu déroulant que tu veux obtenir n'est pas le comportement usuel que Microsoft donne aux menus déroulants dans Excel par Data-Validation.

Le but n'est pas d'empécher l'utilisateur de saisir une valeur dans la cellule où on place le menu déroulant, mais de l'empécher de valider cette valeur si elle est différente de celles du menu déroulant.

Si la saise de toutes les données d'entrée de ta feuille se font par des menus déroulants, tu peux obtenir un comportement plus proche de celui que tu décrivais en faisant la chose suivante :

1) Tu déprotèges toutes les cellules d'entrées de ta feuille (format - cells onglet protection)
2) Tu protèges la feuille elle même en décochant "Select Unlocked Cells" dans le menu
Tools - Protection - Protect Sheet

L'ennui, c'est que tu n'a acces à plus rien d'autre, en entrée, qu'à tes menus déroulants.

Une autre solution serait de capter l'évenement selection de la cellule où se trouve le menu déroulant est de dérouler le menu automatiquement pour empécher l'utilisateur de saisir du texte dans la cellule, mais on ne pas forcer programatiquement le déroulement du menu avec les objets validations (on peut le faire avec les combobox control).
 

brucewilly

XLDnaute Nouveau
Re : Empêcher saisie érite dans celllule avec déroulant

Bonsoir Alexico,
Comme le préconise Jean Pierre un fichier joint est plus simple pour répondre. Si non il te faut définir un nom à ta zone de colonne noms et quand tu as le tableau définir un nom en bas tu fait référence en utilisant la fonction =DECALER(BD!$B$1;1;0;NBVAL(BD!$A:$A)-1;1) par exemple cela n'affiche que les noms.
Bruce
 

JCGL

XLDnaute Barbatruc
Re : Empêcher saisie érite dans celllule avec déroulant

Bonjour à tous,

Cependant , j'ai un autre (petit) souci : dans la liste de sélection des noms dans la cellule, le volet est assez grand voir trop en fait car en plus des noms présents dans la liste, il y a aussi pas mal d'espace vide. En gros le volet de sélection est à moité vide (l'autre moitié est remplit de ma plage de noms).
Je sais pas si je suis clair !
Je crois que le problème viens du fait que la source des propositions de la liste est tirée d'une colonne entière (colonne A) et non d'une plage de cellule déterminée.

Alors si vous avez une astuce pour "zapper" tout ce blanc qui occupe le volet de séléction...! Merci d'avance !

En supposant ta liste en 'Feuil2' et un titre en A1 :

Dans Insertion / Nom / Définir et tu nommes cette liste par 'Liste' et 'Fait Référence à', tu colle ceci
Code:
=DECALER(Feuil2!$A$2;;;NBVAL(Feuil2!$A:$A))
Clique sur Ajouter

A+
 

Alexico

XLDnaute Nouveau
Re : Empêcher saisie érite dans celllule avec déroulant

Bonsoir tout le monde !

D'abord merci à tous pour votre aide !
Comme un fichier vaut mieux qu'un long discours ...

Je suis plutot satisfait de ce que j'ai pu faire de ce fichier. Cependant, je compte l'utiliser à mon travail pour le partager avec mes collègues.
Il sera donc utilisé par plusieurs personnes, je voudrais donc que ce fichier soit le plus efficace contre les erreurs humaines.

Pour information, ce document va permettre de trier des références de projets selon plusieurs critères (numéros d'affaires, clients...)

Pour reprendre l'objet de ce topic, je trouve que le fichier pouurait être amélioré. A savoir : supprimer l'espace vide se trouvant dans le volet de la liste dans dans la colonne Clients de "Feuil 2".
La liste en question reprend le listing des clients dans l'onglet "Base de données".
J'ai fait Insertion/Nom/définir pour pouvoir créer la liste des cellule à menu déroulant.
Un autre point qui me dérange c'est que lorsque que j'active le volet de la liste, je me retrouve la plupart du temps en bas du menu déroulant (à savoir dans l'espace vide) au lieu d'être en haut de la liste.
Le dernier point qui me chagrine le plus, c'est cette histoire de possibilité d'écrire dans la cellule qui sert à choisir le "client" dans lemenu déroulant (Feuil 2). Mon objectif est que l'utilisateur ne puisse pas écrire mais seulement sélectionner; je reprend l'exemple du Paris/PARIS/paris qui peut être saisi sans souci.
Voilà pour résumé.
Encore merci pour votre aide !
Regarde la pièce jointe Tableau Alexico 2.xls
 

JCGL

XLDnaute Barbatruc
Re : Empêcher saisie érite dans celllule avec déroulant

Bonjour à tous,

Ton fichier avec la liste de validation
Pour interdire une autre saisie que la la liste définie, il faut décocher 'Ignorer si Vide' dans la fenêtre des paramètres des listes de validation

A+
 

Pièces jointes

  • JC Tableau Alexico 2.zip
    2.8 KB · Affichages: 233

Alexico

XLDnaute Nouveau
Re : Empêcher saisie érite dans celllule avec déroulant

Merci JCGL, je viens de voir la modif que tu as apporté au fichier et c'est exactement ce que je voulais obtenir !
Je vais essayer de la reproduire dans mon fichier original pour comprendre sa construction.
En parlant fonction, je me demandais comment en rédiger une pour faire apparaître dans une cellule le nombre total de clients (en gros une fonction qui puisse compter le nombre de cellules remplies de toute une colonne).

En tout cas merci car vos réponses me permettent d'apprendre un peu plus sur Excel. Ça me pousse d'ailleurs à essayer d'approfondir mes connaissances pour me faire des petits programmes et me faciliter le boulot !
 

JCGL

XLDnaute Barbatruc
Re : Empêcher saisie érite dans celllule avec déroulant

Bonjour à tous,

Ravi que nos contributions te conviennent.
Pour avoir le nombre de 'Clients' de la feuille 1 (à placer dans la feuille 1)
Code:
=NBVAL(A2:A100)

A+ à tous
 

Discussions similaires

Réponses
3
Affichages
427
L
Réponses
3
Affichages
594
LeGrosMatou
L

Statistiques des forums

Discussions
312 753
Messages
2 091 668
Membres
105 040
dernier inscrit
PeupleVert