Limiter la saisie des données dans excel

Signaler
-
Messages postés
8185
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
12 septembre 2020
-
Bonjour,

J'ai préparé un tableau de saisie sans userform en définissant le contrôle des cellules destinées à enregistrer les données. Cependant lorsque je limite une cellule à, par exemple, du texte et 30 caractères, cela n'empêche pas de frapper plus de 30 caractères qui débordent alors sur le (les) cellule(s) de droite. Ce n'est qu'au moment où l'on fait "ENTER" que le contrôle intervient et le message d'erreur apparaît. Je souhaiterais que, dans le cas cité, la frappe soit stoppée et le message d'erreur apparaisse dès la frappe du 31ème caractère, sans déborder sur les cellules adjacentes. Je ne trouve pas la solution. Merci de m'aider si vous avez pu résoudre un problème similaire.

3 réponses

Messages postés
2235
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
15 septembre 2020
113
Messages postés
8185
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
12 septembre 2020
19
Bonjour,

A ma connaissance, il n'est pas possible de limiter la longueur du texte saisi dans une cellule avant l'action sur Entrée (ou Tab), même en VBA (l'évènement Change se produit après la validation de la saisie).
Ça l'est peut-être via l'API Windows ????
Une alternative est de saisir le texte dans un Textbox.

Cordialement
Patrice

Personne ne peut détenir tout le savoir, c'est pour ça qu'on le partage.

Bonjour Patrice33740,
J'ai peut-être une idée puisqu'il ne serait pas possible d'obtenir l'alerte avant d'actionner la touche "ENTER" ce serait de mesurer la longueur de la chaine de caractères et qu'une fois le maximum atteint ce soit la macro qui simule le click sur la touche "ENTER" de sorte que l'encodage s'arrête et le message apparaisse. Mais, voilà, débutant en VBA, j'ignore s'il est possible de rédiger une telle macro et quelles instructions y placer.

Merci pour ton aide.
Messages postés
8185
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
12 septembre 2020
19
Il n'y a aucun événement Excel pendant la saisie dans une cellule, il n'est donc pas possible de mesurer la longueur du texte saisi, sauf peut-être avec l'API Windows (mais j'en doute).

Ceci dit, avec la validation de donnée, on peut afficher un message qui indique que la saisie doit faire moins de 30 caractères et refuser une saisie non conforme donc je ne vois pas l'intérêt de limiter la saisie !

Il vaut mieux se servir d'Excel pour ce qu'il est prévu qu'il fasse (et ses possibilités sont gigantesques) plutôt que d'en faire une usine à gaz.