re,
Darnel écrit:
en gros si je comprend bien ce qu'il faut que je fasse, je doit mettre ce code dans thisworkbook, tel qu'il est sauf que je remplace les noms des feuilles et que je tappe les messages que je veux mettre...
Tu places effectivement ce code dans ThisWorkbook mais c'est une procédure événementielle qui est activée à chaque modification, dans une feuille quelconque du classeur, d'une cellule.
Je n'ai pas utilisé le paramètre
Sh mais si tu souhaites limiter l'action à une feuille déterminée, il te suffit de tester
Sh.Name par exemple.
sinon juste une precision, ce code revien à dire que des que je suis sur la feuille en question, elle est vérouillée et le reste du temps elle ne l'est pas? est ce que ca va me permettre via d'autre macro activées par des boutons sur d'autres feuilles de m'enregistrer mes modifs dans ma base de donnée et empecher quelqu'un de saisir directement des trucs dans la base de données. parceque les booleens, on a déjà essyer de m'expliquer leur fonctionnement mais la ca va pas être évident pôur moi de tout comprendre, je ne supporte pas de pas savoir exactement ce que je fais et de pas etre capable de le refaire sans faire un copier coller...
En fait, je ne verrouille pas ta feuille, mais j'empêche la modification des cellules dont la protection est 'verrouillée' (à voir dans Format / Cellule).
Si tu souhaites travailler sur les feuilles de ton classeur (ou celle que tu auras ciblée comme expliqué précédemment), alors il vaut mieux déclarer la variable InEvent dans un module comme ceci :
Public InEvent
As Boolean
Ainsi, à chaque fois que tu souhaiteras effectuer des modifs, il suffira de placer avant ton code :
InEvent =
True
Et de réactiver la procédure
Private Sub Workbook_SheetChange par un simple :
InEvent =
False
encore un truc... je sais je suis lourd mais j'essai de comprendre 😛inch: et c'est pas facile : dans ton code, que représente cette ligne, et dois je y modifier un truc?
MsgBox Msg, vbCritical + vbOKOnly
Cette ligne permet d'afficher un message d'erreur. Comme tu l'as déjà deviné, tu peux modifier la valeur de Msg, déclarée en constante en début de module, pour afficher un message plus adapté que celui que j'ai prévu.
Pour les boutons, j'ai pensé qu'un simple bouton OK suffisait (pas d'annulation possible, comme quand la feuille est verrouillée) avec un signe d'alerte du type croix blanche sur fond rouge (vbCritical).
En espérant avoir été clair :ermm:
A+
😉
Message édité par: Charly2, à: 14/03/2006 15:41