protection des onglets d'un classeur

Le
ALF
Bonjour,

j'ai créé sur PERSO.xls, 2 macros qui permettent de proteger et de
deverouiller tous les onglets d'un classeur à partir d'une image.
cela marche parfaitement
mais je me suis apercu que cela bloque aussi les macros insérés dans les
onglets
ce qui me pose un probleme car le but etant d'empecher toutes modif sur les
cellules des onglets mais pas d'empecher les macros de fonctionner..
comment peut on verouiller les cellules des onglets tout en autorisant les
macros des onglets de fonctionner (par contre l'acces au macros doit etre
vérouillé)
je vous laisse ci joints les 2 macros de protection/deprotection..

Sub Protéger()
'protection automatique de toutes les feuilles d'un classeur
Dim nombre As Integer
nombre = ActiveWorkbook.Sheets.Count
Application.ScreenUpdating = False
For i = 1 To nombre
Worksheets(i).Protect Password:="LOIC1999"
Next i
End Sub

Sub Déprotéger()
'Déprotection automatique de toutes les feuilles d'un classeur
Dim nombre As Integer
nombre = ActiveWorkbook.Sheets.Count
Application.ScreenUpdating = False
For i = 1 To nombre
Worksheets(i).Unprotect Password:="LOIC1999"
Next i
End Sub

Merci de votre soutien
--
ALF
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
MichDenis
Le #4445231
Ajoute ceci à cette ligne de code :

!UserInterfaceOnly:=True!

Worksheets(i).Protect Password:="LOIC1999",UserInterfaceOnly:=True



"ALF"
Bonjour,

j'ai créé sur PERSO.xls, 2 macros qui permettent de proteger et de
deverouiller tous les onglets d'un classeur à partir d'une image.
cela marche parfaitement...
mais je me suis apercu que cela bloque aussi les macros insérés dans les
onglets...
ce qui me pose un probleme car le but etant d'empecher toutes modif sur les
cellules des onglets mais pas d'empecher les macros de fonctionner..
comment peut on verouiller les cellules des onglets tout en autorisant les
macros des onglets de fonctionner (par contre l'acces au macros doit etre
vérouillé...)
je vous laisse ci joints les 2 macros de protection/deprotection..

Sub Protéger()
'protection automatique de toutes les feuilles d'un classeur
Dim nombre As Integer
nombre = ActiveWorkbook.Sheets.Count
Application.ScreenUpdating = False
For i = 1 To nombre
Worksheets(i).Protect Password:="LOIC1999"
Next i
End Sub

Sub Déprotéger()
'Déprotection automatique de toutes les feuilles d'un classeur
Dim nombre As Integer
nombre = ActiveWorkbook.Sheets.Count
Application.ScreenUpdating = False
For i = 1 To nombre
Worksheets(i).Unprotect Password:="LOIC1999"
Next i
End Sub

Merci de votre soutien
--
ALF
ALF
Le #4444811
--
ALF



Ajoute ceci à cette ligne de code :

!UserInterfaceOnly:=True!

Worksheets(i).Protect Password:="LOIC1999",UserInterfaceOnly:=True



"ALF"
Bonjour,

j'ai créé sur PERSO.xls, 2 macros qui permettent de proteger et de
deverouiller tous les onglets d'un classeur à partir d'une image.
cela marche parfaitement...
mais je me suis apercu que cela bloque aussi les macros insérés dans les
onglets...
ce qui me pose un probleme car le but etant d'empecher toutes modif sur les
cellules des onglets mais pas d'empecher les macros de fonctionner..
comment peut on verouiller les cellules des onglets tout en autorisant les
macros des onglets de fonctionner (par contre l'acces au macros doit etre
vérouillé...)
je vous laisse ci joints les 2 macros de protection/deprotection..

Sub Protéger()
'protection automatique de toutes les feuilles d'un classeur
Dim nombre As Integer
nombre = ActiveWorkbook.Sheets.Count
Application.ScreenUpdating = False
For i = 1 To nombre
Worksheets(i).Protect Password:="LOIC1999"
Next i
End Sub

Sub Déprotéger()
'Déprotection automatique de toutes les feuilles d'un classeur
Dim nombre As Integer
nombre = ActiveWorkbook.Sheets.Count
Application.ScreenUpdating = False
For i = 1 To nombre
Worksheets(i).Unprotect Password:="LOIC1999"
Next i
End Sub

Merci de votre soutien
--
ALF





ALF
Le #4444801
bonsoir et merci,
peux tu me confirmer que ceci va aussi verouiller le code tout en
autorisant son execution ???

Merci


--
ALF



Ajoute ceci à cette ligne de code :

!UserInterfaceOnly:=True!

Worksheets(i).Protect Password:="LOIC1999",UserInterfaceOnly:=True



"ALF"
Bonjour,

j'ai créé sur PERSO.xls, 2 macros qui permettent de proteger et de
deverouiller tous les onglets d'un classeur à partir d'une image.
cela marche parfaitement...
mais je me suis apercu que cela bloque aussi les macros insérés dans les
onglets...
ce qui me pose un probleme car le but etant d'empecher toutes modif sur les
cellules des onglets mais pas d'empecher les macros de fonctionner..
comment peut on verouiller les cellules des onglets tout en autorisant les
macros des onglets de fonctionner (par contre l'acces au macros doit etre
vérouillé...)
je vous laisse ci joints les 2 macros de protection/deprotection..

Sub Protéger()
'protection automatique de toutes les feuilles d'un classeur
Dim nombre As Integer
nombre = ActiveWorkbook.Sheets.Count
Application.ScreenUpdating = False
For i = 1 To nombre
Worksheets(i).Protect Password:="LOIC1999"
Next i
End Sub

Sub Déprotéger()
'Déprotection automatique de toutes les feuilles d'un classeur
Dim nombre As Integer
nombre = ActiveWorkbook.Sheets.Count
Application.ScreenUpdating = False
For i = 1 To nombre
Worksheets(i).Unprotect Password:="LOIC1999"
Next i
End Sub

Merci de votre soutien
--
ALF





ALF
Le #4444611
Bonjour,

j'ai inséré UserInterfaceOnly:=True àla ligne de code comme indiqué mais
cela ne marche pas ..il n'y a apparemment aucun changement...c'est a dire que
lorque que j'active la macro Sub Proteger(), les cellules des onglets sont
bien protégés par contre je peux toujours visualiser et modifier le code..et
plus genant,je ne peux activer les macros intégrés dans les feuilles...

Merci de m'aider sur ce cas de figure..


Sub Protéger()
'protection automatique de toutes les feuilles d'un classeur
Dim nombre As Integer
nombre = ActiveWorkbook.Sheets.Count
Application.ScreenUpdating = False
For i = 1 To nombre
Worksheets(i).Protect Password:="LOIC1999", UserInterfaceOnly:=True
Next i
End Sub
--
ALF



Ajoute ceci à cette ligne de code :

!UserInterfaceOnly:=True!

Worksheets(i).Protect Password:="LOIC1999",UserInterfaceOnly:=True



"ALF"
Bonjour,

j'ai créé sur PERSO.xls, 2 macros qui permettent de proteger et de
deverouiller tous les onglets d'un classeur à partir d'une image.
cela marche parfaitement...
mais je me suis apercu que cela bloque aussi les macros insérés dans les
onglets...
ce qui me pose un probleme car le but etant d'empecher toutes modif sur les
cellules des onglets mais pas d'empecher les macros de fonctionner..
comment peut on verouiller les cellules des onglets tout en autorisant les
macros des onglets de fonctionner (par contre l'acces au macros doit etre
vérouillé...)
je vous laisse ci joints les 2 macros de protection/deprotection..

Sub Protéger()
'protection automatique de toutes les feuilles d'un classeur
Dim nombre As Integer
nombre = ActiveWorkbook.Sheets.Count
Application.ScreenUpdating = False
For i = 1 To nombre
Worksheets(i).Protect Password:="LOIC1999"
Next i
End Sub

Sub Déprotéger()
'Déprotection automatique de toutes les feuilles d'un classeur
Dim nombre As Integer
nombre = ActiveWorkbook.Sheets.Count
Application.ScreenUpdating = False
For i = 1 To nombre
Worksheets(i).Unprotect Password:="LOIC1999"
Next i
End Sub

Merci de votre soutien
--
ALF





MichDenis
Le #4444341
Pour limiter l'accès au code, tu sélectionnes ton projet dans
l'explorateur de projets (fenêtre de l'éditeur de code) un clic droit,
propriétés de VBAproject , onglet Protection.

Tu dois fermer ensuite ton classeur et c'est seulement à sa réouverture
que le code sera inaccessible sans le mot passe que tu as choisis.




"ALF"
Bonjour,

j'ai inséré UserInterfaceOnly:=True àla ligne de code comme indiqué mais
cela ne marche pas ..il n'y a apparemment aucun changement...c'est a dire que
lorque que j'active la macro Sub Proteger(), les cellules des onglets sont
bien protégés par contre je peux toujours visualiser et modifier le code..et
plus genant,je ne peux activer les macros intégrés dans les feuilles...

Merci de m'aider sur ce cas de figure..


Sub Protéger()
'protection automatique de toutes les feuilles d'un classeur
Dim nombre As Integer
nombre = ActiveWorkbook.Sheets.Count
Application.ScreenUpdating = False
For i = 1 To nombre
Worksheets(i).Protect Password:="LOIC1999", UserInterfaceOnly:=True
Next i
End Sub
--
ALF



Ajoute ceci à cette ligne de code :

!UserInterfaceOnly:=True!

Worksheets(i).Protect Password:="LOIC1999",UserInterfaceOnly:=True



"ALF"
Bonjour,

j'ai créé sur PERSO.xls, 2 macros qui permettent de proteger et de
deverouiller tous les onglets d'un classeur à partir d'une image.
cela marche parfaitement...
mais je me suis apercu que cela bloque aussi les macros insérés dans les
onglets...
ce qui me pose un probleme car le but etant d'empecher toutes modif sur les
cellules des onglets mais pas d'empecher les macros de fonctionner..
comment peut on verouiller les cellules des onglets tout en autorisant les
macros des onglets de fonctionner (par contre l'acces au macros doit etre
vérouillé...)
je vous laisse ci joints les 2 macros de protection/deprotection..

Sub Protéger()
'protection automatique de toutes les feuilles d'un classeur
Dim nombre As Integer
nombre = ActiveWorkbook.Sheets.Count
Application.ScreenUpdating = False
For i = 1 To nombre
Worksheets(i).Protect Password:="LOIC1999"
Next i
End Sub

Sub Déprotéger()
'Déprotection automatique de toutes les feuilles d'un classeur
Dim nombre As Integer
nombre = ActiveWorkbook.Sheets.Count
Application.ScreenUpdating = False
For i = 1 To nombre
Worksheets(i).Unprotect Password:="LOIC1999"
Next i
End Sub

Merci de votre soutien
--
ALF





ALF
Le #4444241
Bonjour,

OK pour la protection du code,mais qu'en est il de l'autorisation de l
'execution de ce code pendant la phase de protection...
car en effet comme je le disais,j'aimerais que les utilisateurs de ce
fichier puisse executer ce code sans pouvoir le modifier...
faut il rajouter du code pour permettre l'execution de la macro tout en la
verouillant pour la modification...

Merci.
--
ALF



Pour limiter l'accès au code, tu sélectionnes ton projet dans
l'explorateur de projets (fenêtre de l'éditeur de code) un clic droit,
propriétés de VBAproject , onglet Protection.

Tu dois fermer ensuite ton classeur et c'est seulement à sa réouverture
que le code sera inaccessible sans le mot passe que tu as choisis.




"ALF"
Bonjour,

j'ai inséré UserInterfaceOnly:=True àla ligne de code comme indiqué mais
cela ne marche pas ..il n'y a apparemment aucun changement...c'est a dire que
lorque que j'active la macro Sub Proteger(), les cellules des onglets sont
bien protégés par contre je peux toujours visualiser et modifier le code..et
plus genant,je ne peux activer les macros intégrés dans les feuilles...

Merci de m'aider sur ce cas de figure..


Sub Protéger()
'protection automatique de toutes les feuilles d'un classeur
Dim nombre As Integer
nombre = ActiveWorkbook.Sheets.Count
Application.ScreenUpdating = False
For i = 1 To nombre
Worksheets(i).Protect Password:="LOIC1999", UserInterfaceOnly:=True
Next i
End Sub
--
ALF



Ajoute ceci à cette ligne de code :

!UserInterfaceOnly:=True!

Worksheets(i).Protect Password:="LOIC1999",UserInterfaceOnly:=True



"ALF"
Bonjour,

j'ai créé sur PERSO.xls, 2 macros qui permettent de proteger et de
deverouiller tous les onglets d'un classeur à partir d'une image.
cela marche parfaitement...
mais je me suis apercu que cela bloque aussi les macros insérés dans les
onglets...
ce qui me pose un probleme car le but etant d'empecher toutes modif sur les
cellules des onglets mais pas d'empecher les macros de fonctionner..
comment peut on verouiller les cellules des onglets tout en autorisant les
macros des onglets de fonctionner (par contre l'acces au macros doit etre
vérouillé...)
je vous laisse ci joints les 2 macros de protection/deprotection..

Sub Protéger()
'protection automatique de toutes les feuilles d'un classeur
Dim nombre As Integer
nombre = ActiveWorkbook.Sheets.Count
Application.ScreenUpdating = False
For i = 1 To nombre
Worksheets(i).Protect Password:="LOIC1999"
Next i
End Sub

Sub Déprotéger()
'Déprotection automatique de toutes les feuilles d'un classeur
Dim nombre As Integer
nombre = ActiveWorkbook.Sheets.Count
Application.ScreenUpdating = False
For i = 1 To nombre
Worksheets(i).Unprotect Password:="LOIC1999"
Next i
End Sub

Merci de votre soutien
--
ALF










MichDenis
Le #4443621
Pour ce qui est de l'accessibilité au code du classeur :
Impossible de limiter l'accès sans avoir fermé le classeur et l'avoir ré-ouvert
après avoir renseigné l'onglet dans le message décrit dans le message précédent.

Pour ce qui est de la protection de la feuille et de la possibilité d'exécuter des
macros pendant que la feuille est protégé, je t'invite à lire l'aide

Tu places le curseur sur le mot "protect" dans une fenêtre vba et appel la touche F1

Tu dois mettre ceci dans le ThisWorkbook de ton classeur :
Toutes les feuilles seront protégées et tu pourra exécuter les macros que tu désires
sans que l'usager puisse modifier le contenu des cellules et des objets contenus dans les feuilles.
'--------------------------------
Private Sub Workbook_Open()
For Each sh In Worksheets
sh.Protect Password:="LOIC1999", _
DrawingObjects:=True, Contents:=True, _
UserInterfaceOnly:=True
Next
End Sub
'--------------------------------


"ALF"
Bonjour,

OK pour la protection du code,mais qu'en est il de l'autorisation de l
'execution de ce code pendant la phase de protection...
car en effet comme je le disais,j'aimerais que les utilisateurs de ce
fichier puisse executer ce code sans pouvoir le modifier...
faut il rajouter du code pour permettre l'execution de la macro tout en la
verouillant pour la modification...

Merci.
--
ALF



Pour limiter l'accès au code, tu sélectionnes ton projet dans
l'explorateur de projets (fenêtre de l'éditeur de code) un clic droit,
propriétés de VBAproject , onglet Protection.

Tu dois fermer ensuite ton classeur et c'est seulement à sa réouverture
que le code sera inaccessible sans le mot passe que tu as choisis.




"ALF"
Bonjour,

j'ai inséré UserInterfaceOnly:=True àla ligne de code comme indiqué mais
cela ne marche pas ..il n'y a apparemment aucun changement...c'est a dire que
lorque que j'active la macro Sub Proteger(), les cellules des onglets sont
bien protégés par contre je peux toujours visualiser et modifier le code..et
plus genant,je ne peux activer les macros intégrés dans les feuilles...

Merci de m'aider sur ce cas de figure..


Sub Protéger()
'protection automatique de toutes les feuilles d'un classeur
Dim nombre As Integer
nombre = ActiveWorkbook.Sheets.Count
Application.ScreenUpdating = False
For i = 1 To nombre
Worksheets(i).Protect Password:="LOIC1999", UserInterfaceOnly:=True
Next i
End Sub
--
ALF



Ajoute ceci à cette ligne de code :

!UserInterfaceOnly:=True!

Worksheets(i).Protect Password:="LOIC1999",UserInterfaceOnly:=True



"ALF"
Bonjour,

j'ai créé sur PERSO.xls, 2 macros qui permettent de proteger et de
deverouiller tous les onglets d'un classeur à partir d'une image.
cela marche parfaitement...
mais je me suis apercu que cela bloque aussi les macros insérés dans les
onglets...
ce qui me pose un probleme car le but etant d'empecher toutes modif sur les
cellules des onglets mais pas d'empecher les macros de fonctionner..
comment peut on verouiller les cellules des onglets tout en autorisant les
macros des onglets de fonctionner (par contre l'acces au macros doit etre
vérouillé...)
je vous laisse ci joints les 2 macros de protection/deprotection..

Sub Protéger()
'protection automatique de toutes les feuilles d'un classeur
Dim nombre As Integer
nombre = ActiveWorkbook.Sheets.Count
Application.ScreenUpdating = False
For i = 1 To nombre
Worksheets(i).Protect Password:="LOIC1999"
Next i
End Sub

Sub Déprotéger()
'Déprotection automatique de toutes les feuilles d'un classeur
Dim nombre As Integer
nombre = ActiveWorkbook.Sheets.Count
Application.ScreenUpdating = False
For i = 1 To nombre
Worksheets(i).Unprotect Password:="LOIC1999"
Next i
End Sub

Merci de votre soutien
--
ALF










ALF
Le #4442261
Bonjour,

Non,apparemment cela ne fonctionne pas...

sh.Protect n'est pas reconnu..de même que drawingObject ,Contents et
UserInterfaceOnly.

les feuilles sont bien verouilles (on ne peut acceder aux cellules) ,les
codes sont inaccessibles...ok c'est bien ce que je voulais...
MAIS...
L'execution des macro est aussi verouillé ce que je ne veux pas...

ci joint le code que tu m'avais conseillé...

Private Sub Workbook_Open()
For Each sh In Worksheets
sh.Protect Password:="LOIC1999", _
DrawingObjects:=True, Contents:=True, _
UserInterfaceOnly:=True
Next
End Sub

Peut etre faut il rajouter quelquechose sur le referentiel bibiotheque ???

Merci.
--
ALF



Pour ce qui est de l'accessibilité au code du classeur :
Impossible de limiter l'accès sans avoir fermé le classeur et l'avoir ré-ouvert
après avoir renseigné l'onglet dans le message décrit dans le message précédent.

Pour ce qui est de la protection de la feuille et de la possibilité d'exécuter des
macros pendant que la feuille est protégé, je t'invite à lire l'aide

Tu places le curseur sur le mot "protect" dans une fenêtre vba et appel la touche F1

Tu dois mettre ceci dans le ThisWorkbook de ton classeur :
Toutes les feuilles seront protégées et tu pourra exécuter les macros que tu désires
sans que l'usager puisse modifier le contenu des cellules et des objets contenus dans les feuilles.
'--------------------------------
Private Sub Workbook_Open()
For Each sh In Worksheets
sh.Protect Password:="LOIC1999", _
DrawingObjects:=True, Contents:=True, _
UserInterfaceOnly:=True
Next
End Sub
'--------------------------------


"ALF"
Bonjour,

OK pour la protection du code,mais qu'en est il de l'autorisation de l
'execution de ce code pendant la phase de protection...
car en effet comme je le disais,j'aimerais que les utilisateurs de ce
fichier puisse executer ce code sans pouvoir le modifier...
faut il rajouter du code pour permettre l'execution de la macro tout en la
verouillant pour la modification...

Merci.
--
ALF



Pour limiter l'accès au code, tu sélectionnes ton projet dans
l'explorateur de projets (fenêtre de l'éditeur de code) un clic droit,
propriétés de VBAproject , onglet Protection.

Tu dois fermer ensuite ton classeur et c'est seulement à sa réouverture
que le code sera inaccessible sans le mot passe que tu as choisis.




"ALF"
Bonjour,

j'ai inséré UserInterfaceOnly:=True àla ligne de code comme indiqué mais
cela ne marche pas ..il n'y a apparemment aucun changement...c'est a dire que
lorque que j'active la macro Sub Proteger(), les cellules des onglets sont
bien protégés par contre je peux toujours visualiser et modifier le code..et
plus genant,je ne peux activer les macros intégrés dans les feuilles...

Merci de m'aider sur ce cas de figure..


Sub Protéger()
'protection automatique de toutes les feuilles d'un classeur
Dim nombre As Integer
nombre = ActiveWorkbook.Sheets.Count
Application.ScreenUpdating = False
For i = 1 To nombre
Worksheets(i).Protect Password:="LOIC1999", UserInterfaceOnly:=True
Next i
End Sub
--
ALF



Ajoute ceci à cette ligne de code :

!UserInterfaceOnly:=True!

Worksheets(i).Protect Password:="LOIC1999",UserInterfaceOnly:=True



"ALF"
Bonjour,

j'ai créé sur PERSO.xls, 2 macros qui permettent de proteger et de
deverouiller tous les onglets d'un classeur à partir d'une image.
cela marche parfaitement...
mais je me suis apercu que cela bloque aussi les macros insérés dans les
onglets...
ce qui me pose un probleme car le but etant d'empecher toutes modif sur les
cellules des onglets mais pas d'empecher les macros de fonctionner..
comment peut on verouiller les cellules des onglets tout en autorisant les
macros des onglets de fonctionner (par contre l'acces au macros doit etre
vérouillé...)
je vous laisse ci joints les 2 macros de protection/deprotection..

Sub Protéger()
'protection automatique de toutes les feuilles d'un classeur
Dim nombre As Integer
nombre = ActiveWorkbook.Sheets.Count
Application.ScreenUpdating = False
For i = 1 To nombre
Worksheets(i).Protect Password:="LOIC1999"
Next i
End Sub

Sub Déprotéger()
'Déprotection automatique de toutes les feuilles d'un classeur
Dim nombre As Integer
nombre = ActiveWorkbook.Sheets.Count
Application.ScreenUpdating = False
For i = 1 To nombre
Worksheets(i).Unprotect Password:="LOIC1999"
Next i
End Sub

Merci de votre soutien
--
ALF















MichDenis
Le #4442211
| L'execution des macro est aussi verouillé ce que je ne veux pas...

Peux-tu donner (publier ici un exemple de macro qui ne fonctionne pas
si tu appliques la procédure que je t'ai transmise ?




"ALF"
Bonjour,

Non,apparemment cela ne fonctionne pas...

sh.Protect n'est pas reconnu..de même que drawingObject ,Contents et
UserInterfaceOnly.

les feuilles sont bien verouilles (on ne peut acceder aux cellules) ,les
codes sont inaccessibles...ok c'est bien ce que je voulais...
MAIS...
L'execution des macro est aussi verouillé ce que je ne veux pas...

ci joint le code que tu m'avais conseillé...

Private Sub Workbook_Open()
For Each sh In Worksheets
sh.Protect Password:="LOIC1999", _
DrawingObjects:=True, Contents:=True, _
UserInterfaceOnly:=True
Next
End Sub

Peut etre faut il rajouter quelquechose sur le referentiel bibiotheque ???

Merci.
--
ALF



Pour ce qui est de l'accessibilité au code du classeur :
Impossible de limiter l'accès sans avoir fermé le classeur et l'avoir ré-ouvert
après avoir renseigné l'onglet dans le message décrit dans le message précédent.

Pour ce qui est de la protection de la feuille et de la possibilité d'exécuter des
macros pendant que la feuille est protégé, je t'invite à lire l'aide

Tu places le curseur sur le mot "protect" dans une fenêtre vba et appel la touche F1

Tu dois mettre ceci dans le ThisWorkbook de ton classeur :
Toutes les feuilles seront protégées et tu pourra exécuter les macros que tu désires
sans que l'usager puisse modifier le contenu des cellules et des objets contenus dans les
feuilles.
'--------------------------------
Private Sub Workbook_Open()
For Each sh In Worksheets
sh.Protect Password:="LOIC1999", _
DrawingObjects:=True, Contents:=True, _
UserInterfaceOnly:=True
Next
End Sub
'--------------------------------


"ALF"
Bonjour,

OK pour la protection du code,mais qu'en est il de l'autorisation de l
'execution de ce code pendant la phase de protection...
car en effet comme je le disais,j'aimerais que les utilisateurs de ce
fichier puisse executer ce code sans pouvoir le modifier...
faut il rajouter du code pour permettre l'execution de la macro tout en la
verouillant pour la modification...

Merci.
--
ALF



Pour limiter l'accès au code, tu sélectionnes ton projet dans
l'explorateur de projets (fenêtre de l'éditeur de code) un clic droit,
propriétés de VBAproject , onglet Protection.

Tu dois fermer ensuite ton classeur et c'est seulement à sa réouverture
que le code sera inaccessible sans le mot passe que tu as choisis.




"ALF"
Bonjour,

j'ai inséré UserInterfaceOnly:=True àla ligne de code comme indiqué mais
cela ne marche pas ..il n'y a apparemment aucun changement...c'est a dire que
lorque que j'active la macro Sub Proteger(), les cellules des onglets sont
bien protégés par contre je peux toujours visualiser et modifier le code..et
plus genant,je ne peux activer les macros intégrés dans les feuilles...

Merci de m'aider sur ce cas de figure..


Sub Protéger()
'protection automatique de toutes les feuilles d'un classeur
Dim nombre As Integer
nombre = ActiveWorkbook.Sheets.Count
Application.ScreenUpdating = False
For i = 1 To nombre
Worksheets(i).Protect Password:="LOIC1999", UserInterfaceOnly:=True
Next i
End Sub
--
ALF



Ajoute ceci à cette ligne de code :

!UserInterfaceOnly:=True!

Worksheets(i).Protect Password:="LOIC1999",UserInterfaceOnly:=True



"ALF"
Bonjour,

j'ai créé sur PERSO.xls, 2 macros qui permettent de proteger et de
deverouiller tous les onglets d'un classeur à partir d'une image.
cela marche parfaitement...
mais je me suis apercu que cela bloque aussi les macros insérés dans les
onglets...
ce qui me pose un probleme car le but etant d'empecher toutes modif sur les
cellules des onglets mais pas d'empecher les macros de fonctionner..
comment peut on verouiller les cellules des onglets tout en autorisant les
macros des onglets de fonctionner (par contre l'acces au macros doit etre
vérouillé...)
je vous laisse ci joints les 2 macros de protection/deprotection..

Sub Protéger()
'protection automatique de toutes les feuilles d'un classeur
Dim nombre As Integer
nombre = ActiveWorkbook.Sheets.Count
Application.ScreenUpdating = False
For i = 1 To nombre
Worksheets(i).Protect Password:="LOIC1999"
Next i
End Sub

Sub Déprotéger()
'Déprotection automatique de toutes les feuilles d'un classeur
Dim nombre As Integer
nombre = ActiveWorkbook.Sheets.Count
Application.ScreenUpdating = False
For i = 1 To nombre
Worksheets(i).Unprotect Password:="LOIC1999"
Next i
End Sub

Merci de votre soutien
--
ALF















ALF
Le #4441691
bonsoir,

voici 2 exemples de macros qui ne s'executent pas automatiquement:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then Range(Target).Select
End Sub

ou
Private Sub Worksheet_Change(ByVal Target As Range)

Dim c As Range
If Target.Address Application.EnableEvents = False
mois = [B12]
indic = [B5]
For Each s In Array("National", "Avignon", "Brest", "Limoges", "Lisieux",
"Paris_E", "IDF", "St-Omer")
Sheets(s).[B12] = mois
Sheets(s).[B5] = indic
Next s
For Each c In Range("I54:I73")
If Left(c, 4) = "Taux" Or Left(c, 4) = "Effi" Or Left(c, 4) = "Qual" Or
Left(c, 1) = "%" Then
Range(c.Offset(0, 1), c.Offset(0, 5)).NumberFormat = "0.00%"
Else
Range(c.Offset(0, 1), c.Offset(0, 5)).NumberFormat = "0"
End If
Next c
For Each c In Range("N24:N50")
If Left(c, 4) = "Taux" Or Left(c, 4) = "Effi" Or Left(c, 4) = "Qual" Or
Left(c, 1) = "%" Then
Range(c.Offset(0, 1), c.Offset(0, 5)).NumberFormat = "0.00%"
Else
Range(c.Offset(0, 1), c.Offset(0, 5)).NumberFormat = "0.00"
End If
Next c
For Each c In Range("B26:B44")
If Left(c, 4) = "Nomb" Then
Range(c.Offset(0, 1), c.Offset(0, 5)).NumberFormat = "0"
Else
Range(c.Offset(0, 1), c.Offset(0, 5)).NumberFormat = "0.0"
End If
Next c
For Each c In Range("H5:H18")
If Left(c, 4) = "EFFC" Then
Range(c.Offset(0, 1), c.Offset(0, 5)).NumberFormat = "0"
Else
Range(c.Offset(0, 1), c.Offset(0, 5)).NumberFormat = "0.0"
End If
Next c
Application.EnableEvents = True

End Sub


--
ALF



| L'execution des macro est aussi verouillé ce que je ne veux pas...

Peux-tu donner (publier ici un exemple de macro qui ne fonctionne pas
si tu appliques la procédure que je t'ai transmise ?




"ALF"
Bonjour,

Non,apparemment cela ne fonctionne pas...

sh.Protect n'est pas reconnu..de même que drawingObject ,Contents et
UserInterfaceOnly.

les feuilles sont bien verouilles (on ne peut acceder aux cellules) ,les
codes sont inaccessibles...ok c'est bien ce que je voulais...
MAIS...
L'execution des macro est aussi verouillé ce que je ne veux pas...

ci joint le code que tu m'avais conseillé...

Private Sub Workbook_Open()
For Each sh In Worksheets
sh.Protect Password:="LOIC1999", _
DrawingObjects:=True, Contents:=True, _
UserInterfaceOnly:=True
Next
End Sub

Peut etre faut il rajouter quelquechose sur le referentiel bibiotheque ???

Merci.
--
ALF



Pour ce qui est de l'accessibilité au code du classeur :
Impossible de limiter l'accès sans avoir fermé le classeur et l'avoir ré-ouvert
après avoir renseigné l'onglet dans le message décrit dans le message précédent.

Pour ce qui est de la protection de la feuille et de la possibilité d'exécuter des
macros pendant que la feuille est protégé, je t'invite à lire l'aide

Tu places le curseur sur le mot "protect" dans une fenêtre vba et appel la touche F1

Tu dois mettre ceci dans le ThisWorkbook de ton classeur :
Toutes les feuilles seront protégées et tu pourra exécuter les macros que tu désires
sans que l'usager puisse modifier le contenu des cellules et des objets contenus dans les
feuilles.
'--------------------------------
Private Sub Workbook_Open()
For Each sh In Worksheets
sh.Protect Password:="LOIC1999", _
DrawingObjects:=True, Contents:=True, _
UserInterfaceOnly:=True
Next
End Sub
'--------------------------------


"ALF"
Bonjour,

OK pour la protection du code,mais qu'en est il de l'autorisation de l
'execution de ce code pendant la phase de protection...
car en effet comme je le disais,j'aimerais que les utilisateurs de ce
fichier puisse executer ce code sans pouvoir le modifier...
faut il rajouter du code pour permettre l'execution de la macro tout en la
verouillant pour la modification...

Merci.
--
ALF



Pour limiter l'accès au code, tu sélectionnes ton projet dans
l'explorateur de projets (fenêtre de l'éditeur de code) un clic droit,
propriétés de VBAproject , onglet Protection.

Tu dois fermer ensuite ton classeur et c'est seulement à sa réouverture
que le code sera inaccessible sans le mot passe que tu as choisis.




"ALF"
Bonjour,

j'ai inséré UserInterfaceOnly:=True àla ligne de code comme indiqué mais
cela ne marche pas ..il n'y a apparemment aucun changement...c'est a dire que
lorque que j'active la macro Sub Proteger(), les cellules des onglets sont
bien protégés par contre je peux toujours visualiser et modifier le code..et
plus genant,je ne peux activer les macros intégrés dans les feuilles...

Merci de m'aider sur ce cas de figure..


Sub Protéger()
'protection automatique de toutes les feuilles d'un classeur
Dim nombre As Integer
nombre = ActiveWorkbook.Sheets.Count
Application.ScreenUpdating = False
For i = 1 To nombre
Worksheets(i).Protect Password:="LOIC1999", UserInterfaceOnly:=True
Next i
End Sub
--
ALF



Ajoute ceci à cette ligne de code :

!UserInterfaceOnly:=True!

Worksheets(i).Protect Password:="LOIC1999",UserInterfaceOnly:=True



"ALF"
Bonjour,

j'ai créé sur PERSO.xls, 2 macros qui permettent de proteger et de
deverouiller tous les onglets d'un classeur à partir d'une image.
cela marche parfaitement...
mais je me suis apercu que cela bloque aussi les macros insérés dans les
onglets...
ce qui me pose un probleme car le but etant d'empecher toutes modif sur les
cellules des onglets mais pas d'empecher les macros de fonctionner..
comment peut on verouiller les cellules des onglets tout en autorisant les
macros des onglets de fonctionner (par contre l'acces au macros doit etre
vérouillé...)
je vous laisse ci joints les 2 macros de protection/deprotection..

Sub Protéger()
'protection automatique de toutes les feuilles d'un classeur
Dim nombre As Integer
nombre = ActiveWorkbook.Sheets.Count
Application.ScreenUpdating = False
For i = 1 To nombre
Worksheets(i).Protect Password:="LOIC1999"
Next i
End Sub

Sub Déprotéger()
'Déprotection automatique de toutes les feuilles d'un classeur
Dim nombre As Integer
nombre = ActiveWorkbook.Sheets.Count
Application.ScreenUpdating = False
For i = 1 To nombre
Worksheets(i).Unprotect Password:="LOIC1999"
Next i
End Sub

Merci de votre soutien
--
ALF




















Publicité
Poster une réponse
Anonyme