Utilisateur anonyme
-
19 août 2020 à 16:46
Patrice33740
Messages postés8556Date d'inscriptiondimanche 13 juin 2010StatutMembreDernière intervention 2 mars 2023
-
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.
Patrice33740
Messages postés8556Date d'inscriptiondimanche 13 juin 2010StatutMembreDernière intervention 2 mars 202321 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.
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.
Patrice33740
Messages postés8556Date d'inscriptiondimanche 13 juin 2010StatutMembreDernière intervention 2 mars 202321 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.