Bonjour,
Je fais appel à vos lumières, car je suis confronté à un problème qui me dépasse. Je suis en train de réaliser un planning de vacances pour une trentaine de personnes.
Les noms des travailleurs figurent en ligne 10, par exemple en F10, puis H10, J10, L10, etc. Il y a toujours une ligne vide entre deux collègues.
En D15 figure la première date de l'année (1.01), puis en D16 le 2.01, D17 le 3.01, etc, jusqu'au 31.12.
Le fichier s'ouvre toujours sur la date du jour, qui apparaît en première ligne.
Les personnes notent leurs jours de vacances, de formation, de maladie, etc, en passant par le clic droit de la souris. Le menu est personnalisé ("Noter mes vacances", "Noter mes jours de formation", etc), ce qui permet de lancer la macro adaptée. Elle va mettre par exemple les jours de vacances en rouge, formation en orange, maladie en vert, etc.
Voilà, dans les grandes lignes, ce qui fonctionne correctement, jusqu'ici, dans le projet.
Ce que j'aimerais améliorer: dans le fonctionnement décrit, si une personne se trompe de colonne et note ses vacances dans la colonne (toute proche) du voisin, il n'y a pas de contrôle, ce sera accepté. Mon idée serait d'utiliser l'identifiant de l'utilisateur pour verrouiller, à l'ouverture, toutes les colonnes sauf la sienne. Sous le nom des collègues, en ligne 10, j'ai des lignes masquées, avec leur identifiant, par exemple sde3, sde12, sde15, etc. Et à l'ouverture du fichier, j'ai utilisé l'instruction Range("D1").Value = Environ ("username"). Par exemple, il pourrait s'agir de sde12. Cet identifiant va apparaître en D1, mais il est aussi présent, dans la ligne masquée (par exemple la ligne 12 contiendrait tous les identifiants des utilisateurs).
Ma question: quelle instruction la plus adaptée mettre dans ThisWorkbook, événement Open, pour que dans un premier temps Excel verrouille tout le planning, puis déverrouille la bonne colonne? En l'occcurrence, s'il voit sde12 dans la cellule D1, il devrait chercher la même valeur dans la ligne 12. S'il voit que sde12 figure dans la cellule N12, Excel devrait déprotéger une partie de cette colonne, c'est à dire allant de la date du 1.01, donc en N15, jusqu'à N381 (ou 382 si l'année est bissextile).
J'espère avoir été clair. N'hésitez pas à me demander si ce n'est pas le cas!
Merci d'avance pour votre aide![]()
Partager