Limiter la saisie des données dans excel

Utilisateur anonyme - 19 août 2020 à 16:46
Patrice33740
Messages postés
8549
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
7 mai 2022
- 20 août 2020 à 08:49
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

vb95
Messages postés
2634
Date d'inscription
samedi 11 janvier 2014
Statut
Modérateur
Dernière intervention
27 mai 2022
151
19 août 2020 à 18:39
0
Patrice33740
Messages postés
8549
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
7 mai 2022
21
Modifié le 19 août 2020 à 21:34
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.
0
Utilisateur anonyme
20 août 2020 à 08:10
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.
0
Patrice33740
Messages postés
8549
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
7 mai 2022
21
Modifié le 20 août 2020 à 09:00
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.
0