Bonjour,
Je produis tous les mois (par VBA) pour chaque salarié (80) une fiche où iul/elle introduit ses heures de travail, de congé, de maladie etc. et qui fait tous les calculs requis, ces calculs étant acttualisés (c.-à-d. qu'ils tiennent compte des heures recueillies les mois précédents depuis janvier).
Comme certaines personnes sont incroyablement maladroites avec la souris, ils arrivent toujours à apporter aux fiches des modifications involontaires mais fâcheuses.
Je joins un modèle de fiche.
Les cases sont composées en réalité de 2 cases superposées fusionnées. Malheureusement il est toujours possible de sélectionner une demi-case (ce que j'ai du mal à comprendre, puisqu'elles ont fusionné et ne constituent plus qu'une seule cellule!). La raison en est que dans la partie de droite de chaque feuille, comportant les calculs et que j'ai dû supprimer pour des raisons de taille de fichier à joindre, j'avais besoin du double de lignes de la partie droite; je n'ai pas trouvé d'autre solution que de fusionner toutes les cellules à gauche pour en avoir le double à droite. Dans ce contexte je serais très intéressé de savoir s'il y aurait un autre moyen de résoudre ce problème!
Il arrive que des personnes déplacent, sans le vouloir, encore une fois, des cellules, modifiant ainsi les formules dans la colonne AD (les formules sur la fiche donnent des messages d'erreur parce qu'il y a des cellules qui manquent; j'ai dû les supprimer pour satisfaire la contrainte de la taille maximale d'un fichier à joindre à ce message).
A vrai dire, je ne sais pas trop si, en déplaçant des cellules, on peut modifier une formule, mais le fait est que régulièrement des formules sont modifiées (décalage de la référence à des cellules dans les formules). Comment faut-il s'y prendre pour modifier une formule involontairement, par la simple manipulation maladroite de la souris?
Un exemple tel qu'il s'est produit:
La formule originale et exacte:
=NB.SI(F17:K17;"X")/2+NB.SI(L17:AA17;"X")+NB.SI(AB17:AC17;"X")/2
a été modifiée comme suit:
=NB.SI(F17:K17;"X")/2+NB.SI(L17:AB17;"X")+NB.SI(AA17:AB17;"X")/2
(pour la meilleure compréhension de la formule: les heures (introduites en tant que X) de 0 h à 6 h comptent à moitié, celles de 6 h à 22 h en entier et celles de 22 h à 0 h à moitié)
J'ai construit un exemple dans le fichier joint: la formule de la cellule AD19 est fausse et celle de la cellule AD21 est exacte.
Ma question:
y a-t-il un moyen de protection (action à intégrer dans mon code VBA) empêchant les personnes de faire ce genre de manipulations (sur les cellules et les formules) tout en leur permettant d'introduire les données?
Excel 2003
Merci d'avance pour toute aide.
Aloha
Je produis tous les mois (par VBA) pour chaque salarié (80) une fiche où iul/elle introduit ses heures de travail, de congé, de maladie etc. et qui fait tous les calculs requis, ces calculs étant acttualisés (c.-à-d. qu'ils tiennent compte des heures recueillies les mois précédents depuis janvier).
Comme certaines personnes sont incroyablement maladroites avec la souris, ils arrivent toujours à apporter aux fiches des modifications involontaires mais fâcheuses.
Je joins un modèle de fiche.
Les cases sont composées en réalité de 2 cases superposées fusionnées. Malheureusement il est toujours possible de sélectionner une demi-case (ce que j'ai du mal à comprendre, puisqu'elles ont fusionné et ne constituent plus qu'une seule cellule!). La raison en est que dans la partie de droite de chaque feuille, comportant les calculs et que j'ai dû supprimer pour des raisons de taille de fichier à joindre, j'avais besoin du double de lignes de la partie droite; je n'ai pas trouvé d'autre solution que de fusionner toutes les cellules à gauche pour en avoir le double à droite. Dans ce contexte je serais très intéressé de savoir s'il y aurait un autre moyen de résoudre ce problème!
Il arrive que des personnes déplacent, sans le vouloir, encore une fois, des cellules, modifiant ainsi les formules dans la colonne AD (les formules sur la fiche donnent des messages d'erreur parce qu'il y a des cellules qui manquent; j'ai dû les supprimer pour satisfaire la contrainte de la taille maximale d'un fichier à joindre à ce message).
A vrai dire, je ne sais pas trop si, en déplaçant des cellules, on peut modifier une formule, mais le fait est que régulièrement des formules sont modifiées (décalage de la référence à des cellules dans les formules). Comment faut-il s'y prendre pour modifier une formule involontairement, par la simple manipulation maladroite de la souris?
Un exemple tel qu'il s'est produit:
La formule originale et exacte:
=NB.SI(F17:K17;"X")/2+NB.SI(L17:AA17;"X")+NB.SI(AB17:AC17;"X")/2
a été modifiée comme suit:
=NB.SI(F17:K17;"X")/2+NB.SI(L17:AB17;"X")+NB.SI(AA17:AB17;"X")/2
(pour la meilleure compréhension de la formule: les heures (introduites en tant que X) de 0 h à 6 h comptent à moitié, celles de 6 h à 22 h en entier et celles de 22 h à 0 h à moitié)
J'ai construit un exemple dans le fichier joint: la formule de la cellule AD19 est fausse et celle de la cellule AD21 est exacte.
Ma question:
y a-t-il un moyen de protection (action à intégrer dans mon code VBA) empêchant les personnes de faire ce genre de manipulations (sur les cellules et les formules) tout en leur permettant d'introduire les données?
Excel 2003
Merci d'avance pour toute aide.
Aloha