Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

protection de mon classeur

6 réponses
Avatar
JEAN
Bonjour,

J'ai des macros qui se déroule dans mon classeur, étant donné qu'auparavant
les feuilles n'etait pas protegé et que maintenant je veux protegé mes trois
feuilles quelle serait le code à mettre qui me permettrai d'executer les
macros meme si mes feuilles sont protégés.

merci

6 réponses

Avatar
michdenis
Bonsoir Jean,

ATTENTION : SI tu as des difficultés à retrouver les messages qui te parviennent, pourquoi ne les enregistres-tu pas
dans un répertoire sur ton disque dur.

Tu ouvres le petite programme "NotePad" et tu fais un copier-coller des messages que tu veux conserver... cela t'évitera
de chercher les réponses reçues ! Et ces réponses seront toujours disponibles !


Copie d'un message que je t'ai envoyée hier.



ce que tu as proposé c'est correct. Sauf lorsque l'on a beaucoup de macro, cela peut devenir lourd de déprotéger et de
re-protéger les feuilles à chaque instant.

Voici une façon de faire qui permet d'exécuter toutes les macros que tu désires même si les feuilles sont protégés. Dans
tout le reste de ton code, tu n'auras plus à tenir compte de la protection de tes feuilles pour exécuter les macros. Il
sera inutile d'ajouter les lignes de code que tu proposes.


Voici comment faire : à chaque fois que tu vas ouvrir ton classeur, la procédure "Workbook_Activate" va s'exécuter toute
seule... c'est aussi une procédure événementielle... et cette dernière va protéger toutes les feuilles de ton classeur
sans exception. L'usager de ces feuilles ne pourra rien modifier manuellement, mais toutes les macros d'effectueront
sans te soucier du fait que ces feuilles sont protégées



Dans le THISWORKBOOK de ton projet copie ceci :
'--------------------------------
Private Sub Workbook_Activate()

Proteger_Les_Feuilles

End Sub


Dans un module Standard, copie ceci

toto dans la procédure représente le mot de passe
tu peux utiliser celui que tu préfères ....

Tu répètes la ligne de commande pour chacune des feuilles
que tu désires protéger.
'-------------------------
Sub Proteger_Les_Feuilles()

Worksheets("Feuil1").Protect "toto", True, True, True, True
Worksheets("Feuil2").Protect "toto", True, True, True, True
Worksheets("Feuil3").Protect "toto", True, True, True, True

End Sub
'-------------------------

Lorsque ces 2 macros seront en place, ferme ton classeur et observe ce qui se passe à l'ouverture de celui-ci lorsque tu
effectueras des macros sur les feuilles protégées.


Salutations!




"JEAN" a écrit dans le message de news:

Bonjour,

J'ai des macros qui se déroule dans mon classeur, étant donné qu'auparavant
les feuilles n'etait pas protegé et que maintenant je veux protegé mes trois
feuilles quelle serait le code à mettre qui me permettrai d'executer les
macros meme si mes feuilles sont protégés.

merci
Avatar
JEAN
oui j'ai essayé cela a marché une fois, et quand j'ai réouvert mon classeur,
ca m'a generé ce message "impossible .. methode hidden"
car la feuille est protegé et il peut pas cacher la colonne,et j'ai verifier
dans mon programme il n'y a pas active unprotect ou protect, je les ai
supprimé.
Pourquoi ca marche pas ne duxiemes fois?

Et je voudrai proteger seulement le contenu?
donc au niveau des 4 TRUE que tu m'a mit, je souhaite juste proteger le
CONTENTS
comme la ligne s'ecrit alors.
"Worksheets("Feuil1").Protect "toto", True, True, True, True"

autre chose pour ma feuille qui se genere automatiquement, comment la
proteger?

merci de ton aide



Bonsoir Jean,

ATTENTION : SI tu as des difficultés à retrouver les messages qui te parviennent, pourquoi ne les enregistres-tu pas
dans un répertoire sur ton disque dur.

Tu ouvres le petite programme "NotePad" et tu fais un copier-coller des messages que tu veux conserver... cela t'évitera
de chercher les réponses reçues ! Et ces réponses seront toujours disponibles !


Copie d'un message que je t'ai envoyée hier.



ce que tu as proposé c'est correct. Sauf lorsque l'on a beaucoup de macro, cela peut devenir lourd de déprotéger et de
re-protéger les feuilles à chaque instant.

Voici une façon de faire qui permet d'exécuter toutes les macros que tu désires même si les feuilles sont protégés. Dans
tout le reste de ton code, tu n'auras plus à tenir compte de la protection de tes feuilles pour exécuter les macros. Il
sera inutile d'ajouter les lignes de code que tu proposes.


Voici comment faire : à chaque fois que tu vas ouvrir ton classeur, la procédure "Workbook_Activate" va s'exécuter toute
seule... c'est aussi une procédure événementielle... et cette dernière va protéger toutes les feuilles de ton classeur
sans exception. L'usager de ces feuilles ne pourra rien modifier manuellement, mais toutes les macros d'effectueront
sans te soucier du fait que ces feuilles sont protégées



Dans le THISWORKBOOK de ton projet copie ceci :
'--------------------------------
Private Sub Workbook_Activate()

Proteger_Les_Feuilles

End Sub


Dans un module Standard, copie ceci

toto dans la procédure représente le mot de passe
tu peux utiliser celui que tu préfères ....

Tu répètes la ligne de commande pour chacune des feuilles
que tu désires protéger.
'-------------------------
Sub Proteger_Les_Feuilles()

Worksheets("Feuil1").Protect "toto", True, True, True, True
Worksheets("Feuil2").Protect "toto", True, True, True, True
Worksheets("Feuil3").Protect "toto", True, True, True, True

End Sub
'-------------------------

Lorsque ces 2 macros seront en place, ferme ton classeur et observe ce qui se passe à l'ouverture de celui-ci lorsque tu
effectueras des macros sur les feuilles protégées.


Salutations!




"JEAN" a écrit dans le message de news:

Bonjour,

J'ai des macros qui se déroule dans mon classeur, étant donné qu'auparavant
les feuilles n'etait pas protegé et que maintenant je veux protegé mes trois
feuilles quelle serait le code à mettre qui me permettrai d'executer les
macros meme si mes feuilles sont protégés.

merci





Avatar
michdenis
Bonjour Jean,

Effectivement Jean, tu as raison. Je t'ai induis en erreur. Cette façon d'écrire cette ligne de code ne fonctionne pas
dans ce cas précis et pourtant, il n'y a pas d'erreur (?) ... c'est juste un truc merdique d'excel. Peut être il y
a-t-il un MVP qui en connaît-il la cause.

Au lieu de renseigner seulement la valeur des arguments de la méthode "Protect", tu te dois de les nommer.

Remplace cette syntaxe
Worksheets("Feuil1").Protect True, True, True, True

PAR :

(ceci est seulement une ligne de code, elle sera probablement coupée par le service de messagerie... il faut donc la
remettre sur une seule ligne pour qu'elle fonctionne. Cette fois, j'ai testé et il n'y a pas de problème avec excel 2002
et probablement pour toutes les versions excel 97 à 2003

Worksheets("Feuil1").Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, UserInterfaceOnly:=True

si tu veux utiliser un mot de passe comme "toto" par exemple, la ligne de code deviendra :

Worksheets("Feuil1").Protect Password:="toto", DrawingObjects:=True, Contents:=True, Scenarios:=True,
UserInterfaceOnly:=True


L'autre partie de ta question, il est tout à fait possible de masquer des colonnes ou de les afficher sur une feuille
masquée avec des commandes comme celle-là. Tu peux appeler ce code aussi souvent que bon te semble et cela ne devrait
pas te causer de soucis. Probablement la cause provient du fait que la ligne de code "Protect" ne faisait pas du bon
travail à l'ouverture du classeur !

Worksheets("Feuil1").Visible = xlVeryHidden

Worksheets("feuil1").Columns("C").Hidden = True


P.S. Durant l'élaboration de ton code, il est préférable que tu n'actives pas cette procédure (celle qui protège tes
feuilles à l'ouverture) , car comme c'est possible lors de tes tests sur les autres procédures de ton classeur que la
fenêtre "Debugg" s'ouvre signalant un "problème" ....le fait que l'application "tombe en erreur" a un effet sur la
protection des feuilles fait de cette manière et que cela te cause des difficultés. Réserve la protection de tes
feuilles lorsque tu auras terminé les autres aspects de ton programme .


Salutations!








"JEAN" a écrit dans le message de news:

oui j'ai essayé cela a marché une fois, et quand j'ai réouvert mon classeur,
ca m'a generé ce message "impossible .. methode hidden"
car la feuille est protegé et il peut pas cacher la colonne,et j'ai verifier
dans mon programme il n'y a pas active unprotect ou protect, je les ai
supprimé.
Pourquoi ca marche pas ne duxiemes fois?

Et je voudrai proteger seulement le contenu?
donc au niveau des 4 TRUE que tu m'a mit, je souhaite juste proteger le
CONTENTS
comme la ligne s'ecrit alors.
"Worksheets("Feuil1").Protect "toto", True, True, True, True"

autre chose pour ma feuille qui se genere automatiquement, comment la
proteger?

merci de ton aide



Bonsoir Jean,

ATTENTION : SI tu as des difficultés à retrouver les messages qui te parviennent, pourquoi ne les enregistres-tu pas
dans un répertoire sur ton disque dur.

Tu ouvres le petite programme "NotePad" et tu fais un copier-coller des messages que tu veux conserver... cela
t'évitera
de chercher les réponses reçues ! Et ces réponses seront toujours disponibles !


Copie d'un message que je t'ai envoyée hier.



ce que tu as proposé c'est correct. Sauf lorsque l'on a beaucoup de macro, cela peut devenir lourd de déprotéger et de
re-protéger les feuilles à chaque instant.

Voici une façon de faire qui permet d'exécuter toutes les macros que tu désires même si les feuilles sont protégés.
Dans
tout le reste de ton code, tu n'auras plus à tenir compte de la protection de tes feuilles pour exécuter les macros.
Il
sera inutile d'ajouter les lignes de code que tu proposes.


Voici comment faire : à chaque fois que tu vas ouvrir ton classeur, la procédure "Workbook_Activate" va s'exécuter
toute
seule... c'est aussi une procédure événementielle... et cette dernière va protéger toutes les feuilles de ton classeur
sans exception. L'usager de ces feuilles ne pourra rien modifier manuellement, mais toutes les macros d'effectueront
sans te soucier du fait que ces feuilles sont protégées



Dans le THISWORKBOOK de ton projet copie ceci :
'--------------------------------
Private Sub Workbook_Activate()

Proteger_Les_Feuilles

End Sub


Dans un module Standard, copie ceci

toto dans la procédure représente le mot de passe
tu peux utiliser celui que tu préfères ....

Tu répètes la ligne de commande pour chacune des feuilles
que tu désires protéger.
'-------------------------
Sub Proteger_Les_Feuilles()

Worksheets("Feuil1").Protect "toto", True, True, True, True
Worksheets("Feuil2").Protect "toto", True, True, True, True
Worksheets("Feuil3").Protect "toto", True, True, True, True

End Sub
'-------------------------

Lorsque ces 2 macros seront en place, ferme ton classeur et observe ce qui se passe à l'ouverture de celui-ci lorsque
tu
effectueras des macros sur les feuilles protégées.


Salutations!




"JEAN" a écrit dans le message de news:

Bonjour,

J'ai des macros qui se déroule dans mon classeur, étant donné qu'auparavant
les feuilles n'etait pas protegé et que maintenant je veux protegé mes trois
feuilles quelle serait le code à mettre qui me permettrai d'executer les
macros meme si mes feuilles sont protégés.

merci





Avatar
JEAN
c'est toujours pareil, j'ai essayé cette ligne

Worksheets("Feuil1").Protect DrawingObjects:úlse, Contents:=True,
Scenarios:úlse, UserInterfaceOnly:=True

ca passe une fois, mais la seconde fois ca bug avec impossible de definir la
methode de la classe range.

????????????bizaarre


Bonjour Jean,

Effectivement Jean, tu as raison. Je t'ai induis en erreur. Cette façon d'écrire cette ligne de code ne fonctionne pas
dans ce cas précis et pourtant, il n'y a pas d'erreur (?) ... c'est juste un truc merdique d'excel. Peut être il y
a-t-il un MVP qui en connaît-il la cause.

Au lieu de renseigner seulement la valeur des arguments de la méthode "Protect", tu te dois de les nommer.

Remplace cette syntaxe
Worksheets("Feuil1").Protect True, True, True, True

PAR :

(ceci est seulement une ligne de code, elle sera probablement coupée par le service de messagerie... il faut donc la
remettre sur une seule ligne pour qu'elle fonctionne. Cette fois, j'ai testé et il n'y a pas de problème avec excel 2002
et probablement pour toutes les versions excel 97 à 2003

Worksheets("Feuil1").Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, UserInterfaceOnly:=True

si tu veux utiliser un mot de passe comme "toto" par exemple, la ligne de code deviendra :

Worksheets("Feuil1").Protect Password:="toto", DrawingObjects:=True, Contents:=True, Scenarios:=True,
UserInterfaceOnly:=True


L'autre partie de ta question, il est tout à fait possible de masquer des colonnes ou de les afficher sur une feuille
masquée avec des commandes comme celle-là. Tu peux appeler ce code aussi souvent que bon te semble et cela ne devrait
pas te causer de soucis. Probablement la cause provient du fait que la ligne de code "Protect" ne faisait pas du bon
travail à l'ouverture du classeur !

Worksheets("Feuil1").Visible = xlVeryHidden

Worksheets("feuil1").Columns("C").Hidden = True


P.S. Durant l'élaboration de ton code, il est préférable que tu n'actives pas cette procédure (celle qui protège tes
feuilles à l'ouverture) , car comme c'est possible lors de tes tests sur les autres procédures de ton classeur que la
fenêtre "Debugg" s'ouvre signalant un "problème" ....le fait que l'application "tombe en erreur" a un effet sur la
protection des feuilles fait de cette manière et que cela te cause des difficultés. Réserve la protection de tes
feuilles lorsque tu auras terminé les autres aspects de ton programme .


Salutations!








"JEAN" a écrit dans le message de news:

oui j'ai essayé cela a marché une fois, et quand j'ai réouvert mon classeur,
ca m'a generé ce message "impossible .. methode hidden"
car la feuille est protegé et il peut pas cacher la colonne,et j'ai verifier
dans mon programme il n'y a pas active unprotect ou protect, je les ai
supprimé.
Pourquoi ca marche pas ne duxiemes fois?

Et je voudrai proteger seulement le contenu?
donc au niveau des 4 TRUE que tu m'a mit, je souhaite juste proteger le
CONTENTS
comme la ligne s'ecrit alors.
"Worksheets("Feuil1").Protect "toto", True, True, True, True"

autre chose pour ma feuille qui se genere automatiquement, comment la
proteger?

merci de ton aide



Bonsoir Jean,

ATTENTION : SI tu as des difficultés à retrouver les messages qui te parviennent, pourquoi ne les enregistres-tu pas
dans un répertoire sur ton disque dur.

Tu ouvres le petite programme "NotePad" et tu fais un copier-coller des messages que tu veux conserver... cela
t'évitera
de chercher les réponses reçues ! Et ces réponses seront toujours disponibles !


Copie d'un message que je t'ai envoyée hier.



ce que tu as proposé c'est correct. Sauf lorsque l'on a beaucoup de macro, cela peut devenir lourd de déprotéger et de
re-protéger les feuilles à chaque instant.

Voici une façon de faire qui permet d'exécuter toutes les macros que tu désires même si les feuilles sont protégés.
Dans
tout le reste de ton code, tu n'auras plus à tenir compte de la protection de tes feuilles pour exécuter les macros.
Il
sera inutile d'ajouter les lignes de code que tu proposes.


Voici comment faire : à chaque fois que tu vas ouvrir ton classeur, la procédure "Workbook_Activate" va s'exécuter
toute
seule... c'est aussi une procédure événementielle... et cette dernière va protéger toutes les feuilles de ton classeur
sans exception. L'usager de ces feuilles ne pourra rien modifier manuellement, mais toutes les macros d'effectueront
sans te soucier du fait que ces feuilles sont protégées



Dans le THISWORKBOOK de ton projet copie ceci :
'--------------------------------
Private Sub Workbook_Activate()

Proteger_Les_Feuilles

End Sub


Dans un module Standard, copie ceci

toto dans la procédure représente le mot de passe
tu peux utiliser celui que tu préfères ....

Tu répètes la ligne de commande pour chacune des feuilles
que tu désires protéger.
'-------------------------
Sub Proteger_Les_Feuilles()

Worksheets("Feuil1").Protect "toto", True, True, True, True
Worksheets("Feuil2").Protect "toto", True, True, True, True
Worksheets("Feuil3").Protect "toto", True, True, True, True

End Sub
'-------------------------

Lorsque ces 2 macros seront en place, ferme ton classeur et observe ce qui se passe à l'ouverture de celui-ci lorsque
tu
effectueras des macros sur les feuilles protégées.


Salutations!




"JEAN" a écrit dans le message de news:

Bonjour,

J'ai des macros qui se déroule dans mon classeur, étant donné qu'auparavant
les feuilles n'etait pas protegé et que maintenant je veux protegé mes trois
feuilles quelle serait le code à mettre qui me permettrai d'executer les
macros meme si mes feuilles sont protégés.

merci










Avatar
michdenis
Bonjour Jean,

Worksheets("Feuil1").Protect DrawingObjects:úlse, Contents:=True,
Scenarios:úlse, UserInterfaceOnly:=True

C'est une ligne de code qui est utilisé une fois à l'ouverture du classeur et c'est tout. Nul besoin de la ré-exécuter à
nouveau !


Salutations!




"JEAN" a écrit dans le message de news:

c'est toujours pareil, j'ai essayé cette ligne

Worksheets("Feuil1").Protect DrawingObjects:úlse, Contents:=True,
Scenarios:úlse, UserInterfaceOnly:=True

ca passe une fois, mais la seconde fois ca bug avec impossible de definir la
methode de la classe range.

????????????bizaarre


Bonjour Jean,

Effectivement Jean, tu as raison. Je t'ai induis en erreur. Cette façon d'écrire cette ligne de code ne fonctionne pas
dans ce cas précis et pourtant, il n'y a pas d'erreur (?) ... c'est juste un truc merdique d'excel. Peut être il y
a-t-il un MVP qui en connaît-il la cause.

Au lieu de renseigner seulement la valeur des arguments de la méthode "Protect", tu te dois de les nommer.

Remplace cette syntaxe
Worksheets("Feuil1").Protect True, True, True, True

PAR :

(ceci est seulement une ligne de code, elle sera probablement coupée par le service de messagerie... il faut donc la
remettre sur une seule ligne pour qu'elle fonctionne. Cette fois, j'ai testé et il n'y a pas de problème avec excel
2002
et probablement pour toutes les versions excel 97 à 2003

Worksheets("Feuil1").Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, UserInterfaceOnly:=True

si tu veux utiliser un mot de passe comme "toto" par exemple, la ligne de code deviendra :

Worksheets("Feuil1").Protect Password:="toto", DrawingObjects:=True, Contents:=True, Scenarios:=True,
UserInterfaceOnly:=True


L'autre partie de ta question, il est tout à fait possible de masquer des colonnes ou de les afficher sur une feuille
masquée avec des commandes comme celle-là. Tu peux appeler ce code aussi souvent que bon te semble et cela ne devrait
pas te causer de soucis. Probablement la cause provient du fait que la ligne de code "Protect" ne faisait pas du bon
travail à l'ouverture du classeur !

Worksheets("Feuil1").Visible = xlVeryHidden

Worksheets("feuil1").Columns("C").Hidden = True


P.S. Durant l'élaboration de ton code, il est préférable que tu n'actives pas cette procédure (celle qui protège tes
feuilles à l'ouverture) , car comme c'est possible lors de tes tests sur les autres procédures de ton classeur que la
fenêtre "Debugg" s'ouvre signalant un "problème" ....le fait que l'application "tombe en erreur" a un effet sur la
protection des feuilles fait de cette manière et que cela te cause des difficultés. Réserve la protection de tes
feuilles lorsque tu auras terminé les autres aspects de ton programme .


Salutations!








"JEAN" a écrit dans le message de news:

oui j'ai essayé cela a marché une fois, et quand j'ai réouvert mon classeur,
ca m'a generé ce message "impossible .. methode hidden"
car la feuille est protegé et il peut pas cacher la colonne,et j'ai verifier
dans mon programme il n'y a pas active unprotect ou protect, je les ai
supprimé.
Pourquoi ca marche pas ne duxiemes fois?

Et je voudrai proteger seulement le contenu?
donc au niveau des 4 TRUE que tu m'a mit, je souhaite juste proteger le
CONTENTS
comme la ligne s'ecrit alors.
"Worksheets("Feuil1").Protect "toto", True, True, True, True"

autre chose pour ma feuille qui se genere automatiquement, comment la
proteger?

merci de ton aide



Bonsoir Jean,

ATTENTION : SI tu as des difficultés à retrouver les messages qui te parviennent, pourquoi ne les enregistres-tu pas
dans un répertoire sur ton disque dur.

Tu ouvres le petite programme "NotePad" et tu fais un copier-coller des messages que tu veux conserver... cela
t'évitera
de chercher les réponses reçues ! Et ces réponses seront toujours disponibles !


Copie d'un message que je t'ai envoyée hier.



ce que tu as proposé c'est correct. Sauf lorsque l'on a beaucoup de macro, cela peut devenir lourd de déprotéger et
de
re-protéger les feuilles à chaque instant.

Voici une façon de faire qui permet d'exécuter toutes les macros que tu désires même si les feuilles sont protégés.
Dans
tout le reste de ton code, tu n'auras plus à tenir compte de la protection de tes feuilles pour exécuter les macros.
Il
sera inutile d'ajouter les lignes de code que tu proposes.


Voici comment faire : à chaque fois que tu vas ouvrir ton classeur, la procédure "Workbook_Activate" va s'exécuter
toute
seule... c'est aussi une procédure événementielle... et cette dernière va protéger toutes les feuilles de ton
classeur
sans exception. L'usager de ces feuilles ne pourra rien modifier manuellement, mais toutes les macros d'effectueront
sans te soucier du fait que ces feuilles sont protégées



Dans le THISWORKBOOK de ton projet copie ceci :
'--------------------------------
Private Sub Workbook_Activate()

Proteger_Les_Feuilles

End Sub


Dans un module Standard, copie ceci

toto dans la procédure représente le mot de passe
tu peux utiliser celui que tu préfères ....

Tu répètes la ligne de commande pour chacune des feuilles
que tu désires protéger.
'-------------------------
Sub Proteger_Les_Feuilles()

Worksheets("Feuil1").Protect "toto", True, True, True, True
Worksheets("Feuil2").Protect "toto", True, True, True, True
Worksheets("Feuil3").Protect "toto", True, True, True, True

End Sub
'-------------------------

Lorsque ces 2 macros seront en place, ferme ton classeur et observe ce qui se passe à l'ouverture de celui-ci
lorsque
tu
effectueras des macros sur les feuilles protégées.


Salutations!




"JEAN" a écrit dans le message de news:

Bonjour,

J'ai des macros qui se déroule dans mon classeur, étant donné qu'auparavant
les feuilles n'etait pas protegé et que maintenant je veux protegé mes trois
feuilles quelle serait le code à mettre qui me permettrai d'executer les
macros meme si mes feuilles sont protégés.

merci










Avatar
JEAN
si parce que au fait quand j'ouvre mon classeur une fois, je selectionne une
date et ensuite la date vient se mettre sur la feuille2 et en meme temps il y
a un masquage de colonne
ensuite je ferme mon classeur.
tout s'est bien passé.

je réouvre mon classeur, et je met une autre date, et c'est la que ca bug
avec le message "impossibile de définir...."

en changeant la date qui va etre ecrit sur la feuille 2

ca bug

car la feuille 2 est protegé,mais je veux qu'elle ne soit pas protégé quand
j'execute cette macro

merci

"michdenis" wrote:

Bonjour Jean,

Worksheets("Feuil1").Protect DrawingObjects:úlse, Contents:=True,
Scenarios:úlse, UserInterfaceOnly:=True

C'est une ligne de code qui est utilisé une fois à l'ouverture du classeur et c'est tout. Nul besoin de la ré-exécuter à
nouveau !


Salutations!




"JEAN" a écrit dans le message de news:

c'est toujours pareil, j'ai essayé cette ligne

Worksheets("Feuil1").Protect DrawingObjects:úlse, Contents:=True,
Scenarios:úlse, UserInterfaceOnly:=True

ca passe une fois, mais la seconde fois ca bug avec impossible de definir la
methode de la classe range.

????????????bizaarre


Bonjour Jean,

Effectivement Jean, tu as raison. Je t'ai induis en erreur. Cette façon d'écrire cette ligne de code ne fonctionne pas
dans ce cas précis et pourtant, il n'y a pas d'erreur (?) ... c'est juste un truc merdique d'excel. Peut être il y
a-t-il un MVP qui en connaît-il la cause.

Au lieu de renseigner seulement la valeur des arguments de la méthode "Protect", tu te dois de les nommer.

Remplace cette syntaxe
Worksheets("Feuil1").Protect True, True, True, True

PAR :

(ceci est seulement une ligne de code, elle sera probablement coupée par le service de messagerie... il faut donc la
remettre sur une seule ligne pour qu'elle fonctionne. Cette fois, j'ai testé et il n'y a pas de problème avec excel
2002
et probablement pour toutes les versions excel 97 à 2003

Worksheets("Feuil1").Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, UserInterfaceOnly:=True

si tu veux utiliser un mot de passe comme "toto" par exemple, la ligne de code deviendra :

Worksheets("Feuil1").Protect Password:="toto", DrawingObjects:=True, Contents:=True, Scenarios:=True,
UserInterfaceOnly:=True


L'autre partie de ta question, il est tout à fait possible de masquer des colonnes ou de les afficher sur une feuille
masquée avec des commandes comme celle-là. Tu peux appeler ce code aussi souvent que bon te semble et cela ne devrait
pas te causer de soucis. Probablement la cause provient du fait que la ligne de code "Protect" ne faisait pas du bon
travail à l'ouverture du classeur !

Worksheets("Feuil1").Visible = xlVeryHidden

Worksheets("feuil1").Columns("C").Hidden = True


P.S. Durant l'élaboration de ton code, il est préférable que tu n'actives pas cette procédure (celle qui protège tes
feuilles à l'ouverture) , car comme c'est possible lors de tes tests sur les autres procédures de ton classeur que la
fenêtre "Debugg" s'ouvre signalant un "problème" ....le fait que l'application "tombe en erreur" a un effet sur la
protection des feuilles fait de cette manière et que cela te cause des difficultés. Réserve la protection de tes
feuilles lorsque tu auras terminé les autres aspects de ton programme .


Salutations!








"JEAN" a écrit dans le message de news:

oui j'ai essayé cela a marché une fois, et quand j'ai réouvert mon classeur,
ca m'a generé ce message "impossible .. methode hidden"
car la feuille est protegé et il peut pas cacher la colonne,et j'ai verifier
dans mon programme il n'y a pas active unprotect ou protect, je les ai
supprimé.
Pourquoi ca marche pas ne duxiemes fois?

Et je voudrai proteger seulement le contenu?
donc au niveau des 4 TRUE que tu m'a mit, je souhaite juste proteger le
CONTENTS
comme la ligne s'ecrit alors.
"Worksheets("Feuil1").Protect "toto", True, True, True, True"

autre chose pour ma feuille qui se genere automatiquement, comment la
proteger?

merci de ton aide



Bonsoir Jean,

ATTENTION : SI tu as des difficultés à retrouver les messages qui te parviennent, pourquoi ne les enregistres-tu pas
dans un répertoire sur ton disque dur.

Tu ouvres le petite programme "NotePad" et tu fais un copier-coller des messages que tu veux conserver... cela
t'évitera
de chercher les réponses reçues ! Et ces réponses seront toujours disponibles !


Copie d'un message que je t'ai envoyée hier.



ce que tu as proposé c'est correct. Sauf lorsque l'on a beaucoup de macro, cela peut devenir lourd de déprotéger et
de
re-protéger les feuilles à chaque instant.

Voici une façon de faire qui permet d'exécuter toutes les macros que tu désires même si les feuilles sont protégés.
Dans
tout le reste de ton code, tu n'auras plus à tenir compte de la protection de tes feuilles pour exécuter les macros.
Il
sera inutile d'ajouter les lignes de code que tu proposes.


Voici comment faire : à chaque fois que tu vas ouvrir ton classeur, la procédure "Workbook_Activate" va s'exécuter
toute
seule... c'est aussi une procédure événementielle... et cette dernière va protéger toutes les feuilles de ton
classeur
sans exception. L'usager de ces feuilles ne pourra rien modifier manuellement, mais toutes les macros d'effectueront
sans te soucier du fait que ces feuilles sont protégées



Dans le THISWORKBOOK de ton projet copie ceci :
'--------------------------------
Private Sub Workbook_Activate()

Proteger_Les_Feuilles

End Sub


Dans un module Standard, copie ceci

toto dans la procédure représente le mot de passe
tu peux utiliser celui que tu préfères ....

Tu répètes la ligne de commande pour chacune des feuilles
que tu désires protéger.
'-------------------------
Sub Proteger_Les_Feuilles()

Worksheets("Feuil1").Protect "toto", True, True, True, True
Worksheets("Feuil2").Protect "toto", True, True, True, True
Worksheets("Feuil3").Protect "toto", True, True, True, True

End Sub
'-------------------------

Lorsque ces 2 macros seront en place, ferme ton classeur et observe ce qui se passe à l'ouverture de celui-ci
lorsque
tu
effectueras des macros sur les feuilles protégées.


Salutations!




"JEAN" a écrit dans le message de news:

Bonjour,

J'ai des macros qui se déroule dans mon classeur, étant donné qu'auparavant
les feuilles n'etait pas protegé et que maintenant je veux protegé mes trois
feuilles quelle serait le code à mettre qui me permettrai d'executer les
macros meme si mes feuilles sont protégés.

merci