VBA-enregistrement modifications

Le
Pierre.M
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
DanielCo
Le #22904681
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


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
Pierre.M
Le #22904831
On 2010-12-09 18:28:09 +0100, DanielCo
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.


Cordialement.
Daniel


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
Le #22905691
On 2010-12-09 18:28:09 +0100, DanielCo
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
Le #22906571
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$
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

Pierre.M
Le #22908041
On 2010-12-09 22:46:38 +0100, DanielCo
On 2010-12-09 18:28:09 +0100, DanielCo
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.




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
Daniel.C
Le #22909431
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

On 2010-12-09 22:46:38 +0100, DanielCo
On 2010-12-09 18:28:09 +0100, DanielCo
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.




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
Pierre.M
Le #22910011
On 2010-12-10 19:28:30 +0100, Daniel.C
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




On 2010-12-09 22:46:38 +0100, DanielCo
On 2010-12-09 18:28:09 +0100, DanielCo
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.




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
Pierre.M
Le #22910001
Merci beaucoup a toi aussi.
J'étudie ça des que possible...
Peut-etre une solution alternative pour mon projet.
Bon weekend.
Pierre



On 2010-12-10 09:04:58 +0100, "LSteph"
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$
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
Publicité
Poster une réponse
Anonyme