OVH Cloud OVH Cloud

Interdire la saisie de données dans des cellules

12 réponses
Avatar
Luc
Bonjour à tous,

Je souhaiterais controler la saisie de certaines données (heures) dans les
cases d'un planning. Par exemple, interdire la saisie d'une heure comprise
entre 00:00 et 12:00 dans certaines cases ou entre 12:01 et 24:00 dans
d'autres.
Evidemment, par la validation des données de la barre d'outil excel, ça
marche très bien sauf que je souhaite établir un planning par semaine sur 1
an (30 salariés, 7 jours et 52 semaines, donc 52 répétitions du tableau de la
première semaine sur une feuille) et le nombre de validations étant
apparemment limité, cela crée une erreur:
"Impossible d'enregistrer la totalité des données et mises en formes
apportées récemment à "nomdufichier.xls".

Est-possible en VBA ? De quelle manière ?

Je vous remercie d'avance pour votre aide

2 réponses

1 2
Avatar
Luc
C'est pas très grave, faudrais vraiment que la personne qui saisi y mette de
la mauvaise volonté pour passer outre la message, lol.
En revanche, je reviens sur le fait que dans la plage indiquée (colonne
entière), des mots peuvent être saisis par endroit, notamment pour signaler
des congés ou maladie.
Peut on n'effectuer le test que sur le type de variables "heure" et ignorer
les texte ?


Luc avait soumis l'idée :
Effectivement, ça remet le curseur dans la case de saisie, mais on peut
contourner l'erreur en placant le curseur dans une autre case. N'y a t-il pas
un moyen de bloquer carrément toute saisie tant que celle-ci n'est pas la
bonne ? Mais laisser la possibilité d'inscrire un texte à la place des heures
?

A part verifier les valeurs dans la plage avant la premiere ligne a

chaque fois qu'on change une cellule, je vois pas :/
Le probleme, c'est qu'a chaque changement dans une cellule de la
feuille, tu aura le test ce qui peut devenir lourd si la plage est
grande

--
JLuc






Avatar
Luc
Je te remercie très soncèrement.

Me reste deux problèmes :

1- Dans les colonnes de test cellules, je rentre toujours des variables sous
la forme "hh:mm" mais parfois les mots "congés" ou "maladie". Je souhaiterais
que la saisie de ceux-ci ne déclenche pas de message d'erreur.
2- Dans la colonne de gauche D46-D48, l"appui sur la touche SUPP envoi le
message erreur de saisie mais pas dans la colonne de droite. Je ne vois pas
pourquoi.
3- Je souhaiterais que le message d'erreur (MSGBOX comprenant actuellement
les bouton "Reessayer" et "Annuler") soit bloquant, c'est à dire que
l'utilisateur ne puisse sortir du message que par une action sur le bouton
"annuler" qui effacerait la saisie effectuée. (Pour le moment, il suffit
d'appuyer sur un des 2 boutons et de placer le curseur ailleur, la saisie
erronée reste inscrite).

Est-ce possible ?



C'est pas très grave, faudrais vraiment que la personne qui saisi y mette de
la mauvaise volonté pour passer outre la message, lol.
En revanche, je reviens sur le fait que dans la plage indiquée (colonne
entière), des mots peuvent être saisis par endroit, notamment pour signaler
des congés ou maladie.
Peut on n'effectuer le test que sur le type de variables "heure" et ignorer
les texte ?


Luc avait soumis l'idée :
Effectivement, ça remet le curseur dans la case de saisie, mais on peut
contourner l'erreur en placant le curseur dans une autre case. N'y a t-il pas
un moyen de bloquer carrément toute saisie tant que celle-ci n'est pas la
bonne ? Mais laisser la possibilité d'inscrire un texte à la place des heures
?

A part verifier les valeurs dans la plage avant la premiere ligne a

chaque fois qu'on change une cellule, je vois pas :/
Le probleme, c'est qu'a chaque changement dans une cellule de la
feuille, tu aura le test ce qui peut devenir lourd si la plage est
grande

--
JLuc








1 2