Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

VBA-enregistrement modifications

7 views
Skip to first unread message

Pierre.M

unread,
Dec 9, 2010, 10:50:07 AM12/9/10
to
Salut à tous,

J'aimerais affecter une macro à une case à cocher.
Lorsque celle-ci est cochée il faudrait que la macro empeche toute
modification du contenu de toutes les feuilles du fichier (pas de
modification manuelle possible et bloquage de toutes les macros) et le
signale à l'utilisateur par un MsgBox.
Je désire en fait pouvoir figer mon fichier à un instant donné et
l'enregistrer ainsi.

En decochant la case on permet bien sur a nouveau la reprise des
modifications et les calculs par macros...

Quelqu'un aurait-il la gentillesse de m'aider à l'écrire ?

Merci d'avance et bonne soiree.

Pierre.M

DanielCo

unread,
Dec 9, 2010, 12:28:09 PM12/9/10
to
Bonjour.
C'est quasiment mission impossible :
1. parce que, si les macros ne sont pas activées, le fait de cocher la
case sera inopérant.
2. Parce que tu ne peux pas empêcher l'exécution d'une macro d'un autre
classeur, laquelle fera toutes les modifications qu'elle voudra.
Cordialement.
Daniel

Pierre.M

unread,
Dec 9, 2010, 1:14:12 PM12/9/10
to
On 2010-12-09 18:28:09 +0100, DanielCo <dcolard...@free.fr> said:

> Bonjour.
> C'est quasiment mission impossible :
> 1. parce que, si les macros ne sont pas activées, le fait de cocher la
> case sera inopérant.

Oui, évidemment. J'aurais pu y penser...
Est-il alors envisageable d'interdire l'enregistrement si cochée (avec
une alerte) ?
Ca figerait bien mon fichier dans l'etat jusqu'a une eventuelle decoche, non?

> 2. Parce que tu ne peux pas empêcher l'exécution d'une macro d'un autre
> classeur, laquelle fera toutes les modifications qu'elle voudra.

OK, mais ce n'est pas prévu, donc pas de risques de ce cote-la.

DanielCo

unread,
Dec 9, 2010, 4:46:38 PM12/9/10
to
> On 2010-12-09 18:28:09 +0100, DanielCo <dcolard...@free.fr> said:
>
>> Bonjour.
>> C'est quasiment mission impossible :
>> 1. parce que, si les macros ne sont pas activées, le fait de cocher la case
>> sera inopérant.
>
> Oui, évidemment. J'aurais pu y penser...
> Est-il alors envisageable d'interdire l'enregistrement si cochée (avec une
> alerte) ?
> Ca figerait bien mon fichier dans l'etat jusqu'a une eventuelle decoche, non?
>
Oui, si le classeur a un mot de passe pour la modification... encore
qu'il soit possible de l'enregistrer sous un autre nom, de supprimer
l'original et de renommer la copie

>> 2. Parce que tu ne peux pas empêcher l'exécution d'une macro d'un autre
>> classeur, laquelle fera toutes les modifications qu'elle voudra.
>
> OK, mais ce n'est pas prévu, donc pas de risques de ce cote-la.
>

C'est toi qui vois...
Daniel


LSteph

unread,
Dec 10, 2010, 3:04:58 AM12/10/10
to
Bonjour,

Malgré mon adhesion première à ce que dit Daniel, une solution de
contournement un peu lourdingue peut-être ets qui ne s'appliquera qu'aux
procèdures internes à ton classeur, à adapter voici l'idée:

'dans Module1 tout en haut

Public CodeActif as Boolean

'au début de toutes tes macros du classeur sauf celle attachée au checkbox
If Not CodeActif then Exit sub

'dans la macro appelée par le checkbox outre le protect de ton choix mettre
in fine

CodeActif= Not CheckBox1

'--
'LSteph

"Pierre.M" a écrit dans le message de
news:4d00faaf$0$7717$ba4a...@reader.news.orange.fr...

Pierre.M

unread,
Dec 10, 2010, 8:37:40 AM12/10/10
to
On 2010-12-09 22:46:38 +0100, DanielCo <dcolard...@free.fr> said:

>> On 2010-12-09 18:28:09 +0100, DanielCo <dcolard...@free.fr> said:
>>
>>> Bonjour.
>>> C'est quasiment mission impossible :
>>> 1. parce que, si les macros ne sont pas activées, le fait de cocher la
>>> case sera inopérant.
>>
>> Oui, évidemment. J'aurais pu y penser...
>> Est-il alors envisageable d'interdire l'enregistrement si cochée (avec
>> une alerte) ?
>> Ca figerait bien mon fichier dans l'etat jusqu'a une eventuelle decoche, non?
>>
> Oui, si le classeur a un mot de passe pour la modification... encore
> qu'il soit possible de l'enregistrer sous un autre nom, de supprimer
> l'original et de renommer la copie

Pas de risque non plus...

Bon, je suis arrive a mes fins, mais il me reste un petit souci.
Est-il possible de proteger une feuille contre toute modification
manuelle et d'autoriser en meme temps le remplissage de cette feuille
par des macros du classeur ?

Encore merci beaucoup pour ton aide et bon après-midi.

Daniel.C

unread,
Dec 10, 2010, 1:28:30 PM12/10/10
to
Oui, dans la méthode "protect", il y a une propriété
"userinterfaceonly" qui interdit la modification manuelle et ne permet
que la modification par macro.
Daniel

Pierre.M

unread,
Dec 10, 2010, 3:38:54 PM12/10/10
to
On 2010-12-10 19:28:30 +0100, Daniel.C <dcolard...@free.fr> said:

> Oui, dans la méthode "protect", il y a une propriété
> "userinterfaceonly" qui interdit la modification manuelle et ne permet
> que la modification par macro.
> Daniel

Super ! Ce qu'il me fallait !
Merci encore et bon weekend.
Pierre

Pierre.M

unread,
Dec 10, 2010, 3:41:38 PM12/10/10
to
Merci beaucoup a toi aussi.
J'étudie ça des que possible...
Peut-etre une solution alternative pour mon projet.
Bon weekend.
Pierre
0 new messages