Verrouiller plage de cellule selon contenu autre cellule

Bonsoir,

je construis une feuille d'appel scolaire, pour laquelle on doit saisir au début du mois le nombre de jours du mis ainsi que le nom du premier jour (L,M,Me...etc). Ces données conditionnent l'affichage de la feuille d'appel.

Pour notifier l'état de présence des élèves, j'ai une liste déroulante dans chaque case, via la validation des données.

Je souhaite que l'utilisateur ne puisse saisir aucune donnée dans les cases concernant les jours de fermeture de l'établissement (Me, S, D), or ces colonnes ne sont pas toujours les mêmes, puisque la feuille change d'apparence selon la durée du mois et le nom du premier jour du mois.

Je pense qu'il faut passer par du VBA, mais je ne maîtrise pas et s'il y a un autre moyen, il m'échappe.

D'avance merci pour vos idées.

38appel.xlsx (29.56 Ko)

Bonsoir,

Un petit début (pour le cas où je n'aurais pas le temps de m'occuper des fériés tout de suite...)

Cordialement.

29sebnath-appel.xlsm (27.89 Ko)

Version modifiée. Toujours une ébauche car la finalité reste encore globalement un peu imprécise...

Le bouton-toupie permet de changer de mois : le changement est opéré par macro (version précédente par formules, la mise à jour était trop lente), et en outre le tableau est désormais effacé au changement de mois (après confirmation de l'utilisateur).

Les dates sont calculées sur la ligne 3 à partir de la date en C3.

Jours fériés ajoutés : ils se calculent sur l'année du planning. Les colonnes des mercredis, samedis, dimanches et fériés sont grisés par MFC (utilisant une fonction personnalisée). Les jours ne figurant pas dans le mois (31 pour l'essentiel) sont masqués par MFC.

Contrôle de saisie par une évènementielle Change : les mentions portés sur des jours de fermeture, des jours hors mois, ou en regard de nom et prénoms absent, sont effacées.

Cordialement.

31sebnath-appel.xlsm (34.15 Ko)

Merci beaucoup, mais je n'arrive pas à ouvrir le fichier. Un message d'alerte me prévient qu'une partie des fonctionnalités n'est pas prise en charge par ma version d'excel (15.37), puis Excel plante.

Peut-être pouvez-vous me l'enregistrer dans un autre format ?

De plus, on m'a demandé d'implémenter la possibilité d'enregistrer et de notifier les retards.

J'ai donc modifié mon fichier original, que je vous mets à disposition.

Merci en tous cas de votre aide.

27appel-2.xlsm (45.45 Ko)

Bonjour,

Les formats de fichiers sont les même depuis Excel 2007... Tu affiches Excel 2007 et tu donnes une version Excel 2013, aucune incompatibilité à cet égard, et vérification faite le fichier s'ouvre sans difficulté... Il y a donc éventuellement autre chose...

Revu : ton dernier fichier indique que tu travailles sur MAC. Alors, en effet avec MAC incompatibilité sur les ActiveX en feuille de calcul. Je vais voir si je peux faire autrement...

Oups, pardon pour l'erreur d'identification de ma version d'Excel. C'est corrigé.

Merci d'envisager de trouver une solution. Pour l'instant, j'ai coloré manuellement les colonnes dans lesquelles je ne veux pas que les utilisateurs ne saisissent quoi que ce soit.

Merci encore

Revoilà le même fichier à voir...

J'ai juste remplacé le SpinButton activeX par un contrôle de formulaire, type ScrollBar plutôt que bouton-toupie (car ces contrôles sont moins malléables et le bouton-toupie formulaire ne se met qu'en vertical...) mais qui fonctionnera comme un bouton-toupie (pas de changement long et court alignés sur 1). Tout le reste correspond donc à ce que j'en avais dit précédemment.

Ce que je considère comme un élément essentiel dans une réalisation de type "planning", c'est la navigation calendaire dans le planning. Ici on a pris comme point de départ 2017 (1=Janvier2017), la valeur 0 du contrôle correspond donc à décembre2016 et chaque incrément ajoute un mois : 9 sera donc septembre2017, 13 janvier2018, etc.

La question qui vient derrière est la finalité globale, c'est à dire s'agit-il d'un planning d'appel éphémère (on récupère éventuellement des données une fois rempli, mais on ne le conserve pas en passant d'un mois à l'autre), ou bien doit-on conserver les données (c'est à dire, on a fini septembre, on passe à octobre, septembre est effacé, doit-on si l'on revient sur septembre retrouver les données consignées en septembre ?)

J'ai provisoirement mis une demande de confirmation au changement de mois, mais si l'on doit conserver les données, on fera disparaître cette demande de confirmation, ma méthode consiste à stocker les données ailleurs pour les rappeler au fil des déplacements calendaires. Les données sont alors toujours conservées, et demeurent modifiables sauf verrou que l'on mettra pour empêcher des modifs après coup dans le passé...

Pour le verrouillage de saisie, j'ai interprété ainsi tes propos : les mois s'affichant sur 31 jours, les jours des mois de moins de 31 jours sont masqués par MFC, mais on interdit donc aussi la saisie sur des jours ne faisant pas partie du mois ; sur le mois, les jours de fermeture (mercredi, samedi, dimanche, et il me semble également fériés, on interdit donc la saisie ; de même sur les ligne ou aucun nom ne figure, il n'y a pas lieu non plus de saisir.

Cordialement.

52sebnath-appel.xlsm (32.58 Ko)

Bonjour je serai intéressé par ce fichier , et nous travaillons encore le mercredi

quelles sont les modifications a réaliser afin de pouvoir décompter les demi-journées du mercredi

merci d’avance

Bonjour Acugier,

Comme la détermination des jours de fermeture est réalisée par une fonction personnalisée (utilisée par la MFC correspondante), il suffit sur cette ligne de la fonction :

        Case 1, 4, 7: JFERMES = True

d'en supprimer le 4 correspondant au mercredi, il ne sera plus alors compté fermé.

Quant à la formule (que j'avais substitué à la formule initiale...) qui décompte les demi-journées d'ouverture, en AS11 :

=NB.JOURS.OUVRES.INTL(E3;FIN.MOIS(E3;0);"0010011";Fériés)*2

Il suffit d'en modifier la chaîne qui paramètre les jours de fermeture :

=NB.JOURS.OUVRES.INTL(E3;FIN.MOIS(E3;0);"0000011";Fériés)*2

NB- dans cette chaîne de 7 chiffres, chacun correspond à un jour du lundi au dimanche, 0=ouvré, 1=non ouvré.

Cordialement.

Merci MFerrand,

je ne peux toujours pas ouvrir ce fichier sur mon macbook, mais j'ai testé sur un PC et c'est top. Bravo.

Pour répondre à ton questionnement, l'idée est de récupérer les données pour faire des stat mensuelles qui seront rassemblées en fin d'année pour faire des stat annuelles. Chaque classe utilise un fichier différent, pour éviter qu'un enseignant n'utilise par erreur la feuille d'un autre et il faudra synthétiser les donnés de l'ensemble des feuilles.

Merci pour ton travail. Il va permettre à une grosse école de fonctionner avec plus de fluidité.

Je ne comprends pas que tu ne puisses l'ouvrir sur MAC !

Aucune instruction incompatible ! Il y avait un ActiveX que j'ai remplacé... Je ne vois rien qui puisse poser problème !

Moi non plus je ne comprends pas, d'autant que c'est le seul fichier excel avec lequel je rencontre ce problème... Je suppose que mon installation est corrompue. Je vais essayer de ré-installer si c'est possible.

Rechercher des sujets similaires à "verrouiller plage contenu"