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

(vba) renommage d'une feuille non protégée par vba

7 réponses
Avatar
j-pascal
Je m'explique ;-)

Bonsoir,

J'ai un classeur de 16 feuilles dont une nommée "accueil".
La feuille "accueil" (VeryHidden) s'affiche si et seulement si l'utilisateur
accepte les macros ...
Comme les autres feuilles (VeryHidden si macro non acceptée) sont traîtées
par leur numéros d'index [à noter que les noms peuvent être actualisés par
une procédure], et qu'il est donc indispensable que l'utilisateur ne les
déplace pas, ni les renomme (...), j'ai inséré au début et à la fin de
certaines procédures :
'------------
ThisWorkbook.Unprotect ' "", True, True (j'ignore à quoi sert True, True
!)
(...)
ThisWorkbook.Protect "", True, True
'------------
Renommage et déplacement impossible, mais ... si l'utilisateur n'accepte pas
les macros, il peut toujours renommer l'onglet "accueil" !! Et quid de la
macro "Sheets("accueil").Visible = xlSheetVeryHidden" exécutée au démarrage
?!!

Le seul truc que j'ai trouvé pour contourner le "renommage" a été de
recourir au "CodeName" (ce que je ne peux utiliser pour les autres feuilles
car elles peuvent être "renommées" par une de mes procédures !).

J'imagine que je peux vérifier au "Workbook.open" que le nom de ma "Feuil15"
est bien "accueil" et qu'a contrario je peux le renommer ...

Curiosité : y-avait-il un moyen plus "académique" de protéger ma feuille
"accueil" ?

Merci d'avance pour vos lumières ...
--
Cordialement @+
JP

7 réponses

Avatar
LSteph
Bonsoir j-pascal,

Achh!
(j'ignore à quoi sert True,
True !)
Tu ne peux l'ignorer si tu as exploité les réponses à ta question

aide sur l'interface vba!!!

ouvrir( ou Ctrl+Espace ...

ou surligner une expression + F1 pour voir ses paramètres dans l'aide

pas les macros, il peut toujours renommer l'onglet "accueil"
Si c'est protègé il ne peut pas , faut déjà la faire apparaître!

Sinon tu lui réserve juste l'onglet avertissement.
Cf. également macro de MichDenis qui doit être sur excelabo.

Pour la protection je t'ai bien indiqué de la faire à la fois dans le
beforeSave et aussi dans le Open (obligatoire si userinterfaceonly)

;o)) mais si tu aimes changer la donne juste pour voir..

Amuses-toi bien.

@+

lSteph




Je m'explique ;-)

Bonsoir,

J'ai un classeur de 16 feuilles dont une nommée "accueil".
La feuille "accueil" (VeryHidden) s'affiche si et seulement si
l'utilisateur accepte les macros ...
Comme les autres feuilles (VeryHidden si macro non acceptée) sont
traîtées par leur numéros d'index [à noter que les noms peuvent être
actualisés par une procédure], et qu'il est donc indispensable que
l'utilisateur ne les déplace pas, ni les renomme (...), j'ai inséré au
début et à la fin de certaines procédures :
'------------
ThisWorkbook.Unprotect ' "", True, True (j'ignore à quoi sert True,
True !)
(...)
ThisWorkbook.Protect "", True, True
'------------
Renommage et déplacement impossible, mais ... si l'utilisateur n'accepte
pas les macros, il peut toujours renommer l'onglet "accueil" !! Et quid
de la macro "Sheets("accueil").Visible = xlSheetVeryHidden" exécutée au
démarrage ?!!

Le seul truc que j'ai trouvé pour contourner le "renommage" a été de
recourir au "CodeName" (ce que je ne peux utiliser pour les autres
feuilles car elles peuvent être "renommées" par une de mes procédures !).

J'imagine que je peux vérifier au "Workbook.open" que le nom de ma
"Feuil15" est bien "accueil" et qu'a contrario je peux le renommer ...

Curiosité : y-avait-il un moyen plus "académique" de protéger ma feuille
"accueil" ?

Merci d'avance pour vos lumières ...


Avatar
JB
Pour empêcher le renommage ou le déplacement de feuilles, il ya Outils/
Protéger le classeur?

JB

On 10 sep, 20:20, "j-pascal" wrote:
Je m'explique ;-)

Bonsoir,

J'ai un classeur de 16 feuilles dont une nommée "accueil".
La feuille "accueil" (VeryHidden) s'affiche si et seulement si l'utilisat eur
accepte les macros ...
Comme les autres feuilles (VeryHidden si macro non acceptée) sont tra îtées
par leur numéros d'index [à noter que les noms peuvent être actuali sés par
une procédure], et qu'il est donc indispensable que l'utilisateur ne les
déplace pas, ni les renomme (...), j'ai inséré au début et à la fin de
certaines procédures :
'------------
ThisWorkbook.Unprotect ' "", True, True (j'ignore à quoi sert True, True
!)
(...)
ThisWorkbook.Protect "", True, True
'------------
Renommage et déplacement impossible, mais ... si l'utilisateur n'accept e pas
les macros, il peut toujours renommer l'onglet "accueil" !! Et quid de la
macro "Sheets("accueil").Visible = xlSheetVeryHidden" exécutée au d émarrage
?!!

Le seul truc que j'ai trouvé pour contourner le "renommage" a été de
recourir au "CodeName" (ce que je ne peux utiliser pour les autres feuill es
car elles peuvent être "renommées" par une de mes procédures !).

J'imagine que je peux vérifier au "Workbook.open" que le nom de ma "Feu il15"
est bien "accueil" et qu'a contrario je peux le renommer ...

Curiosité : y-avait-il un moyen plus "académique" de protéger ma fe uille
"accueil" ?

Merci d'avance pour vos lumières ...
--
Cordialement @+
JP


Avatar
j-pascal
Re,

Certes, mais l'utilisateur doit connaître le MdP pour utiliser le classeur
et peut donc ... renommer les onglets !??

JP

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

Pour empêcher le renommage ou le déplacement de feuilles, il ya Outils/
Protéger le classeur?

JB

On 10 sep, 20:20, "j-pascal" wrote:
Je m'explique ;-)

Bonsoir,

J'ai un classeur de 16 feuilles dont une nommée "accueil".
La feuille "accueil" (VeryHidden) s'affiche si et seulement si
l'utilisateur
accepte les macros ...
Comme les autres feuilles (VeryHidden si macro non acceptée) sont traîtées
par leur numéros d'index [à noter que les noms peuvent être actualisés par
une procédure], et qu'il est donc indispensable que l'utilisateur ne les
déplace pas, ni les renomme (...), j'ai inséré au début et à la fin de
certaines procédures :
'------------
ThisWorkbook.Unprotect ' "", True, True (j'ignore à quoi sert True,
True
!)
(...)
ThisWorkbook.Protect "", True, True
'------------
Renommage et déplacement impossible, mais ... si l'utilisateur n'accepte
pas
les macros, il peut toujours renommer l'onglet "accueil" !! Et quid de la
macro "Sheets("accueil").Visible = xlSheetVeryHidden" exécutée au
démarrage
?!!

Le seul truc que j'ai trouvé pour contourner le "renommage" a été de
recourir au "CodeName" (ce que je ne peux utiliser pour les autres
feuilles
car elles peuvent être "renommées" par une de mes procédures !).

J'imagine que je peux vérifier au "Workbook.open" que le nom de ma
"Feuil15"
est bien "accueil" et qu'a contrario je peux le renommer ...

Curiosité : y-avait-il un moyen plus "académique" de protéger ma feuille
"accueil" ?

Merci d'avance pour vos lumières ...
--
Cordialement @+
JP


Avatar
LSteph
Bonsoir,

Tu peux mettre un mot de passe différent pour chaque type de protection
Classeur (Ouverture) Lecture Ecriture Lecture seule
Feuille (structure...différentes options)
Classeur (structure...)
Autres protections personnalisées(par VBA )
Code (protection du projet)

--
lSteph

Re,

Certes, mais l'utilisateur doit connaître le MdP pour utiliser le
classeur et peut donc ... renommer les onglets !??

JP

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

Pour empêcher le renommage ou le déplacement de feuilles, il ya Outils/
Protéger le classeur?

JB

On 10 sep, 20:20, "j-pascal" wrote:
Je m'explique ;-)

Bonsoir,

J'ai un classeur de 16 feuilles dont une nommée "accueil".
La feuille "accueil" (VeryHidden) s'affiche si et seulement si
l'utilisateur
accepte les macros ...
Comme les autres feuilles (VeryHidden si macro non acceptée) sont
traîtées
par leur numéros d'index [à noter que les noms peuvent être actualisés
par
une procédure], et qu'il est donc indispensable que l'utilisateur ne les
déplace pas, ni les renomme (...), j'ai inséré au début et à la fin de
certaines procédures :
'------------
ThisWorkbook.Unprotect ' "", True, True (j'ignore à quoi sert
True, True
!)
(...)
ThisWorkbook.Protect "", True, True
'------------
Renommage et déplacement impossible, mais ... si l'utilisateur
n'accepte pas
les macros, il peut toujours renommer l'onglet "accueil" !! Et quid de la
macro "Sheets("accueil").Visible = xlSheetVeryHidden" exécutée au
démarrage
?!!

Le seul truc que j'ai trouvé pour contourner le "renommage" a été de
recourir au "CodeName" (ce que je ne peux utiliser pour les autres
feuilles
car elles peuvent être "renommées" par une de mes procédures !).

J'imagine que je peux vérifier au "Workbook.open" que le nom de ma
"Feuil15"
est bien "accueil" et qu'a contrario je peux le renommer ...

Curiosité : y-avait-il un moyen plus "académique" de protéger ma feuille
"accueil" ?

Merci d'avance pour vos lumières ...
--
Cordialement @+
JP






Avatar
j-pascal
Re,

"LSteph" a écrit dans le message de news:
uSGXZx%
Bonsoir,

Tu peux mettre un mot de passe différent pour chaque type de protection
Classeur (Ouverture) Lecture Ecriture Lecture seule
Feuille (structure...différentes options)
Classeur (structure...)
Autres protections personnalisées(par VBA )
Code (protection du projet)


J'ai trouvé la signification du premier "True" (sans ... comme dirait LSteph
;-) ) : Structure Argument de type Variant facultatif. Cet argument a la
valeur True pour protéger la structure du classeur (position relative des
feuilles)

C'est donc cela qui protège mes onglets ?
Que de révélations dans une seule journée ;-)

Bonne nuit,

JP



--
lSteph

Re,

Certes, mais l'utilisateur doit connaître le MdP pour utiliser le
classeur et peut donc ... renommer les onglets !??

JP

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

Pour empêcher le renommage ou le déplacement de feuilles, il ya Outils/
Protéger le classeur?

JB

On 10 sep, 20:20, "j-pascal" wrote:
Je m'explique ;-)

Bonsoir,

J'ai un classeur de 16 feuilles dont une nommée "accueil".
La feuille "accueil" (VeryHidden) s'affiche si et seulement si
l'utilisateur
accepte les macros ...
Comme les autres feuilles (VeryHidden si macro non acceptée) sont
traîtées
par leur numéros d'index [à noter que les noms peuvent être actualisés
par
une procédure], et qu'il est donc indispensable que l'utilisateur ne les
déplace pas, ni les renomme (...), j'ai inséré au début et à la fin de
certaines procédures :
'------------
ThisWorkbook.Unprotect ' "", True, True (j'ignore à quoi sert True,
True
!)
(...)
ThisWorkbook.Protect "", True, True
'------------
Renommage et déplacement impossible, mais ... si l'utilisateur n'accepte
pas
les macros, il peut toujours renommer l'onglet "accueil" !! Et quid de
la
macro "Sheets("accueil").Visible = xlSheetVeryHidden" exécutée au
démarrage
?!!

Le seul truc que j'ai trouvé pour contourner le "renommage" a été de
recourir au "CodeName" (ce que je ne peux utiliser pour les autres
feuilles
car elles peuvent être "renommées" par une de mes procédures !).

J'imagine que je peux vérifier au "Workbook.open" que le nom de ma
"Feuil15"
est bien "accueil" et qu'a contrario je peux le renommer ...

Curiosité : y-avait-il un moyen plus "académique" de protéger ma feuille
"accueil" ?

Merci d'avance pour vos lumières ...
--
Cordialement @+
JP







Avatar
LSteph
Bonjour,

(Attention à ne pas mélanger entre la réponse à une question et tirer
une conclusion sur une autre question)

A-Sur le souci que tu envisageais je dit non il faudrait qu'il ait accès !
...ne pas confondre
1-La protection par mot de passe de l'accès à un classeur Lecture
Ecriture Lecture seule
2-La protection du classeur et des Feuilles à l'ouverture et à la
fermeture(par macro)
3-La protection du Classeur et des Feuilles manuellement
4-La protection du projet(accès au code).
5-Le Masquage, verrouillage ou démasquage à l'ouverture ou fermeture
(par macro)

Pour les points 2 et 3 les paramètres de protect globalement
correspondent puisque c'est le même objectif.

Mais rien à voir avec le point 1 ni 4
-------------------------------------

B-Partant de ce principe
Tu peux mettre un mot de passe différent pour chaque type de protection


Ce qui réfute ton objection à la suggestion de JB qui me paraît
une solution tout à fait envisageable.

C- Sur ta question des signification de paramètres,
il s'agit que tu regardes ce qui apparaît quand tu mets l'instruction en
surbrillance et appuies sur F1 ou bien
lorsque tu ouvres la parenthèse ...ils apparaissent à l'écran.

Cordialement.

lSteph

Re,

"LSteph" a écrit dans le message de news:
uSGXZx%
Bonsoir,

Tu peux mettre un mot de passe différent pour chaque type de protection
Classeur (Ouverture) Lecture Ecriture Lecture seule
Feuille (structure...différentes options)
Classeur (structure...)
Autres protections personnalisées(par VBA )
Code (protection du projet)


J'ai trouvé la signification du premier "True" (sans ... comme dirait
LSteph ;-) ) : Structure Argument de type Variant facultatif. Cet
argument a la valeur True pour protéger la structure du classeur
(position relative des feuilles)

C'est donc cela qui protège mes onglets ?
Que de révélations dans une seule journée ;-)

Bonne nuit,

JP



--
lSteph

Re,

Certes, mais l'utilisateur doit connaître le MdP pour utiliser le
classeur et peut donc ... renommer les onglets !??

JP

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

Pour empêcher le renommage ou le déplacement de feuilles, il ya Outils/
Protéger le classeur?

JB

On 10 sep, 20:20, "j-pascal" wrote:
Je m'explique ;-)

Bonsoir,

J'ai un classeur de 16 feuilles dont une nommée "accueil".
La feuille "accueil" (VeryHidden) s'affiche si et seulement si
l'utilisateur
accepte les macros ...
Comme les autres feuilles (VeryHidden si macro non acceptée) sont
traîtées
par leur numéros d'index [à noter que les noms peuvent être
actualisés par
une procédure], et qu'il est donc indispensable que l'utilisateur ne
les
déplace pas, ni les renomme (...), j'ai inséré au début et à la fin de
certaines procédures :
'------------
ThisWorkbook.Unprotect ' "", True, True (j'ignore à quoi sert
True, True
!)
(...)
ThisWorkbook.Protect "", True, True
'------------
Renommage et déplacement impossible, mais ... si l'utilisateur
n'accepte pas
les macros, il peut toujours renommer l'onglet "accueil" !! Et quid
de la
macro "Sheets("accueil").Visible = xlSheetVeryHidden" exécutée au
démarrage
?!!

Le seul truc que j'ai trouvé pour contourner le "renommage" a été de
recourir au "CodeName" (ce que je ne peux utiliser pour les autres
feuilles
car elles peuvent être "renommées" par une de mes procédures !).

J'imagine que je peux vérifier au "Workbook.open" que le nom de ma
"Feuil15"
est bien "accueil" et qu'a contrario je peux le renommer ...

Curiosité : y-avait-il un moyen plus "académique" de protéger ma
feuille
"accueil" ?

Merci d'avance pour vos lumières ...
--
Cordialement @+
JP









Avatar
j-pascal
Bonsoir Stéphane, et merci (tardivement) pour toutes ces précisions.
Pour l'instant je me concentre sur les protections en vba (qui semblent
fonctionner), mais je reviendrai bientôt sur tes présents conseils.
Salutations,
JP

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

Bonjour,

(Attention à ne pas mélanger entre la réponse à une question et tirer une
conclusion sur une autre question)

A-Sur le souci que tu envisageais je dit non il faudrait qu'il ait accès !
...ne pas confondre
1-La protection par mot de passe de l'accès à un classeur Lecture Ecriture
Lecture seule
2-La protection du classeur et des Feuilles à l'ouverture et à la
fermeture(par macro)
3-La protection du Classeur et des Feuilles manuellement
4-La protection du projet(accès au code).
5-Le Masquage, verrouillage ou démasquage à l'ouverture ou fermeture
(par macro)

Pour les points 2 et 3 les paramètres de protect globalement
correspondent puisque c'est le même objectif.

Mais rien à voir avec le point 1 ni 4
-------------------------------------

B-Partant de ce principe
Tu peux mettre un mot de passe différent pour chaque type de protection


Ce qui réfute ton objection à la suggestion de JB qui me paraît
une solution tout à fait envisageable.

C- Sur ta question des signification de paramètres,
il s'agit que tu regardes ce qui apparaît quand tu mets l'instruction en
surbrillance et appuies sur F1 ou bien
lorsque tu ouvres la parenthèse ...ils apparaissent à l'écran.

Cordialement.

lSteph

Re,

"LSteph" a écrit dans le message de news:
uSGXZx%
Bonsoir,

Tu peux mettre un mot de passe différent pour chaque type de protection
Classeur (Ouverture) Lecture Ecriture Lecture seule
Feuille (structure...différentes options)
Classeur (structure...)
Autres protections personnalisées(par VBA )
Code (protection du projet)


J'ai trouvé la signification du premier "True" (sans ... comme dirait
LSteph ;-) ) : Structure Argument de type Variant facultatif. Cet
argument a la valeur True pour protéger la structure du classeur
(position relative des feuilles)

C'est donc cela qui protège mes onglets ?
Que de révélations dans une seule journée ;-)

Bonne nuit,

JP



--
lSteph

Re,

Certes, mais l'utilisateur doit connaître le MdP pour utiliser le
classeur et peut donc ... renommer les onglets !??

JP

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

Pour empêcher le renommage ou le déplacement de feuilles, il ya Outils/
Protéger le classeur?

JB

On 10 sep, 20:20, "j-pascal" wrote:
Je m'explique ;-)

Bonsoir,

J'ai un classeur de 16 feuilles dont une nommée "accueil".
La feuille "accueil" (VeryHidden) s'affiche si et seulement si
l'utilisateur
accepte les macros ...
Comme les autres feuilles (VeryHidden si macro non acceptée) sont
traîtées
par leur numéros d'index [à noter que les noms peuvent être actualisés
par
une procédure], et qu'il est donc indispensable que l'utilisateur ne
les
déplace pas, ni les renomme (...), j'ai inséré au début et à la fin de
certaines procédures :
'------------
ThisWorkbook.Unprotect ' "", True, True (j'ignore à quoi sert
True, True
!)
(...)
ThisWorkbook.Protect "", True, True
'------------
Renommage et déplacement impossible, mais ... si l'utilisateur
n'accepte pas
les macros, il peut toujours renommer l'onglet "accueil" !! Et quid de
la
macro "Sheets("accueil").Visible = xlSheetVeryHidden" exécutée au
démarrage
?!!

Le seul truc que j'ai trouvé pour contourner le "renommage" a été de
recourir au "CodeName" (ce que je ne peux utiliser pour les autres
feuilles
car elles peuvent être "renommées" par une de mes procédures !).

J'imagine que je peux vérifier au "Workbook.open" que le nom de ma
"Feuil15"
est bien "accueil" et qu'a contrario je peux le renommer ...

Curiosité : y-avait-il un moyen plus "académique" de protéger ma
feuille
"accueil" ?

Merci d'avance pour vos lumières ...
--
Cordialement @+
JP