Bloquer une cellule en fonction de la valeur d'une autre.

chazey

XLDnaute Nouveau
Bonjour à tous,
Explication du tableau :
Dans le tableau "exemple", je voudrais pouvoir bloquer certaines cellules (impossibilité d'y écrire quelque chose) en fonction du contenu d'une autre cellule. Ce tableau sert à gérer des activité para-scolaire. La colonne NOM représente 3 élèves (A,B et C), la partie en jaune représente les activités proposées réparties sur 3 jours : mardi, jeudi et vendredi (notés M, J et V en ligne 3), la partie rouge représente les enfants non inscrits qui quittent à 15h30, la partie verte représente le devenir des enfants après 16h30. Un "1" dans une case indique la présence de l’enfant dans une catégorie. Un enfant ne peut-être inscrit que dans une activité par jour et n'a qu'une seule possibilité de quitter après 16h30.

Ce que je voudrais pouvoir faire :
-dès qu'un enfant est inscrit dans une activité du mardi, je voudrais que toutes les autres cellules des autres activités du mardi soient bloquées en écriture. Idem pour les autres jours.
-idem pour la partie "Devenir des enfants après 16h30 : l'enfant n'a qu'un choix par jour. Lorsque ce choix est validé par "1" je voudrais que les autres cases du même jour de cette catégorie soient bloquées en écriture.
-pour la partie en rouge, les enfants quittent à 15h30 et sont obligatoirement récupérés par les parents. Donc un "1" dans la case d'un jour de cette catégorie doit bloquer en écriture les cases du même jour des 2 autres catégories.

A terme, mon tableau complet compte 160 noms.

Ouf : c'est vrai que l'exemple est important mais il me semble nécessaire de vous donner un maximum d'informations.

Merci à tous pour le travail formidable que vous faite.
 

Pièces jointes

  • Exemple.xlsx
    10.3 KB · Affichages: 115
  • Exemple.xlsx
    10.3 KB · Affichages: 94
  • Exemple.xlsx
    10.3 KB · Affichages: 112

chazey

XLDnaute Nouveau
Re : Bloquer une cellule en fonction de la valeur d'une autre.

Bonjour jpb388
Bonjour à tous
jp, j'ai bien l'impression que c'est exactement ce que je cherchais ! Ça fonctionne très bien. Au début, c'est bizarre car on ne comprend pas pourquoi le sélection ne se déplace pas mais c'est, bien sûr, parce qu'on cherche à sélectionner une case bloquée. Je n'ai pas encore essayé grandeur nature car j'ai une question subsidiaire concernant la macro : je n'y connais pas grand chose en VBA mais j'ai pu reconnaitre la ligne qui dit d'appliquer la macro jusqu'à la dernière ligne du tableau. Mais ma dernière ligne est une ligne "total" dans laquelle je pourrais avoir 2 fois le "1" dans des cases "incompatibles". Y a-t'il un risque de bloquer le système ? Comment modifier la ligne de la macro pour l'arrêter avant la fin du tableau ?

Merci pour le travail formidable que vous faites.
A+
Th
 

Paf

XLDnaute Barbatruc
Re : Bloquer une cellule en fonction de la valeur d'une autre.

Bonjour chazey, jpb388

Un peu tard, mais c'est fait ....

Pour que ça fonctionne j'ai dû modifier l'ordre des colonnes

A+
 

Pièces jointes

  • Chazey APS.xls
    54 KB · Affichages: 121

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Bloquer une cellule en fonction de la valeur d'une autre.

Bonjour à tous,

Un essai sans VBA par validation et MFC.

Ne rien saisir dans les colonnes "Non inscrits". C'est une formule qui se charge de mettre un 1 ou un 0. Si pas d'activité, la formule retourne un 1, si une activité ce jour là alors la formule retourne un 0. Le 0 est masqué à l'aide d'un format personnalisé.

Les cellules colorées en rose par la MFC ne doivent pas contenir de 1. Cela peut se produire si on avait choisi une activité et aussi choisi le mode de récupération après 16h30 et si ensuite on décide de supprimer l’activité de ce jour.

Il suffit de tirer/copier la dernière ligne vers le bas pour agrandir le tableau. Les validations et MFC suivront.

Les formules utilisées sont indiquées dans le classeur.
 

Pièces jointes

  • chazey-Exemple v1.xlsx
    14.4 KB · Affichages: 174
Dernière édition:

chazey

XLDnaute Nouveau
Re : Bloquer une cellule en fonction de la valeur d'une autre.

Bonjour à tous, bonjour Paf, bonjour mapomme
c'est génial ! mais je n'y comprend rien (enfin, je veux dire que là on applique des formules que je ne connais absolument pas). Mais vu qu'il y toutes les explications, ça ne devrait pas me poser de problème. Enfin si, vous me posez un énorme problème et vous avez deviné lequel : quelle méthode vais-je appliquer ?
Vous faites vraiment, tous, un boulot formidable sur ce forum. Je ne sais pas ce que deviendraient les cancres comme moi sans vous.
Merci encore.
Th
 

Paf

XLDnaute Barbatruc
Re : Bloquer une cellule en fonction de la valeur d'une autre.

re à tous

une dernière version qui ne nécessite plus de saisir "1", il suffit de cliquer et correction du mauvais traitement des non inscrits.

Bon courage A+
 

Pièces jointes

  • Chazey APS V2.xls
    54.5 KB · Affichages: 151

chazey

XLDnaute Nouveau
Re : Bloquer une cellule en fonction de la valeur d'une autre.

Bonjour à tous,
Paf est formidable : j'avais une vieille deuche, je demande une logan d'occasion et il me livre, pour le même prix, une rolls neuve !
Merci x 1000.
C'est exactement ce qu'il fallait : simple, rapide et efficace.
Oui mais (grrr, jamais content ce type !) : le tableau en question est ce que j'appellerai le "maitre" d'une cinquantaine de TCD. Et dans ceux-ci j'ai besoin d'additionner les "1" en question. Donc : peut-on remplacer les "X" par des "1" ? Si ce n'est pas le cas, pas grave : la version précédente est déjà très bien.
"la critique est aisée, mais l'art est difficile".
Merci encore.
Th
 

Paf

XLDnaute Barbatruc
Re : Bloquer une cellule en fonction de la valeur d'une autre.

Re

Pour remplacer les X par des 1, dans Private Sub Worksheet_SelectionChange(ByVal Target As Range) de la feuille, remplacer les 3 Target.Value = "X" par Target.Value = 1

Bonne suite
 

chazey

XLDnaute Nouveau
Re : Bloquer une cellule en fonction de la valeur d'une autre.

(re)Bonjour à tous,
Paf : 1000 excuses. Il y a quand même des choses que je peux faire moi-même mais dites-moi cependant ci l'idée est bonne : dans la ligne ou la colonne "total", la formule du style =NB.SI(X5:X8;"X") pour obtenir le nombre de "X" dans les cellules de X5 à X8. C'est bon ça ? Je vais bientôt, moi aussi, pouvoir donner des réponses aux membres du forum ?
Merci encore.
A+
Th
 

Paf

XLDnaute Barbatruc
Re : Bloquer une cellule en fonction de la valeur d'une autre.

Re

dites-moi cependant ci l'idée est bonne : dans la ligne ou la colonne "total", la formule du style =NB.SI(X5:X8;"X") pour obtenir le nombre de "X" dans les cellules de X5 à X8. C'est bon ça ?

ben heu... ça dépend de ce que vous voulez faire, pas vu de ligne ou de colonne total. Pour la formule, le mieux c'est d'essayer
A+
 

thuriot

XLDnaute Nouveau
Re : Bloquer une cellule en fonction de la valeur d'une autre.

Bonsoir,
Ca commence à bien fonctionner ce truc pour toi. Tu pourrais m'aider pour mon planning https://www.excel-downloads.com/thr...riture-cellule-en-fonction-dune-autre.224288/
dans lequel je rencontre un problème similaire, mais je ne comprends rien au vba, comment cela se met ect...
Comment utiliser ton code pour le mien, bref, quelles transformations adaptables
Avec mes remerciements,
Thuriot
 
Dernière édition:

chazey

XLDnaute Nouveau
Re : Bloquer une cellule en fonction de la valeur d'une autre.

Bonjour à tous, bonjour Paf,
je cois bien que nos messages 11 et 12 se sont croisés.
Il est vrai qu'au départ, je n'avais pas parlé de totaux car je pensais que nous resterions sur des chiffres (donc toto faciles). De toute façon, j'abandonne l'idée : le fait de remplacer les "3 Target.Value = "X" par Target.Value = 1" fonctionne très bien (j'ai juste eu du mal à trouver les 3 "Target.Value" mais une petite "recherche" et hop, c'est magique).
En tous cas, merci beaucoup, Paf, car résoudre ce problème dépassait de très loin mes capacités.
Continuez comme ça, vous êtes excel-lent (d'autres l'ont sûrement faite avant moi, mais tant pis je n'ai pas pu résister).
Je sais que si j'ai d'autres "soucis", je trouverai mon bonheur sur ce forum.
A+ et encore merci.
Th
 

Discussions similaires

Statistiques des forums

Discussions
312 213
Messages
2 086 302
Membres
103 174
dernier inscrit
OBUTT