Je ne suis pas certain du tout que le titre de ce post soit bien explicite LOL.
Pour bien définir nos règles de Partenariat, j'envoie un classeur à compléter à mes nouveaux clients.
L'informatique et l'utilisation d'excel ne sont pas "la tasse de thé" de la majorité d'entre eux.
Je dois donc prendre certaines précautions afin qu'ils ne me "bidouillent" pas le classeur.
Bien sûr, tout cela n'est possible que si les macros sont activées et c'est ce que je leur demande de faire.
Entre autres protections, j'ai voulu qu'il ne puissent pas : ajouter, supprimer de feuilles etc ...
Pour cela, vous le verrez dans le fichier joint, avec l'aide des bonnes âmes du forum, j'ai pu mettre en place ce code :
Code:
Sub BloqueFeuilles()
Application.ScreenUpdating = False
Application.EnableEvents = False
If ActiveSheet.Name = "Feuil4" Or ActiveSheet.Name = "Feuil3" Or ActiveSheet.Name = "Feuil1" Or ActiveSheet.Name = "Feuil1" Then
ActiveWorkbook.Protect Structure:=True, Windows:=False
'MsgBox "La suppression de cette feuille est interdite"
Else
ActiveWorkbook.Protect Structure:=True, Windows:=False
If Worksheets.Count > 66 Then
'MsgBox "Il n'est pas prévu plus de 66 Feuilles"
'Application.DisplayAlerts = False
'ActiveSheet.delete
'Application.DisplayAlerts = True
End If
End If
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub
Ce code fonctionne bien mais ne bloque pas tout.
Il reste 3 actions possible :
- Visualiser le code de la feuille,
- Oter la protection de la feuille (même si pas faisable sans le mdp),
- Sélectionner toutes les feuilles
J'ai cherché, sans trouver....
Cela est-il possible ?
Qu'en pensez-vous ?
Je joins un classeur test.
Un grand merci à vous toutes et à vous tous.
Bonne journée,
Amicalement,
Lionel,
Pas trop le temps de répondre à toutes les questions mais pour celle-ci, il serait utile de protéger le code avec un mot de passe
Voici un exemple, essaie de visualiser le code
le mot de passe qui n'apparaît nulle part est toto
Re : Est-il possible de neutraliser toutes interventions modif feuilles (sauf saisie)
Bonjour Philippe,
Comme toujours, merci de ce retour si rapide.
J'ai testé testé mais je connaissais déjà et protéger les macros me pose un problème :
Si je protège les macros avec un mdp, quand on quitte excel, il demande le mdp macros et là, il est impossible de fermer sans entrer le mdp, à moins de forcer "sauvagement" excel à se fermer.
Et puisque l'utilisateur est "l'ennemi" de nos macros et de nos fichiers : j'ai déjà eu ce cas qui m'a obligé à donner le mdp à mon client.
C'est pour cela que je voudrais empêcher, entre autres, la possibilité de sélectionner "visualiser le code" en cliquant droit sur l'onglet des feuilles.
Re : Est-il possible de neutraliser toutes interventions modif feuilles (sauf saisie)
Re,
Si je protège les macros avec un mdp, quand on quitte excel, il demande le mdp macros et là, il est impossible de fermer sans entrer le mdp, à moins de forcer "sauvagement" excel à se fermer.
FAUX, reprend mon fichier, clique-droit sur un onglet pour visualiser le code et entre le mot de passe toto
le code va apparaître
Ensuite,
1- Fait une simple sauvegarde du fichier, (éventuellement en le renommant) le mot de passe ne sera pas demandé
2- Quitte Excel
3- Ouvre le fichier qui vient d'être sauvegardé, active les macros et vas revoir le code de la feuille; le mot de passe sera à nouveau demandé
à+
Philippe
Edit: Ne pas confondre Mot de passe à l'ouverture du fichier avec Mot de passe qui protège les codes
Re : Est-il possible de neutraliser toutes interventions modif feuilles (sauf saisie)
Re Philippe,
J'ai du mal m'expliquer.
Bien évidement, si je fais "clique-droit sur un onglet pour visualiser le code et que j'entre le mot de passe toto
le code va apparaître" ........ Tout à fait le code va bien apparaître.
Mais je ne veux pas donner les mots de passe à mes clients LOL.
Mais si mon client clique droit sur un onglet et puisqu'il n'aura pas le mot de passe, en quittant excel, le mdp est demandé. (enfin chez moi LOL).
........... pas chez moi (avec le fichier joint à la demande initiale)
Je remarque dans tes codes de protection/déprotection qu'il n'y aucun endroit où il est fait usage d'un mot de passe, c'est donc normal que les utilisateurs puissent déprotéger les feuilles quand ils le veulent
Re : Est-il possible de neutraliser toutes interventions modif feuilles (sauf saisie)
Re,
Merci d'être là malgré ton manque de temps.
Mais ma demande peut attendre.
Donc pas d'urgence.
Effectivement, je n'avais pas protégé "dans les macros" les feuilles pour le test mais elles sont protégées
J'ai également mis toto en mdp macros et j'ai testé.
Vilain que je suis, j'avais oublié de te dire que :
- je clique droit et je sélectionne afficher le code,
- à l'affichage de la demande du mdp, je n'entre pas le mdp et je clique sur "annuler",
et là, il me "sort" une erreur système (photo ci-dessous)
- je clique sur OK
- je quitte excel et il me demande le mdp macros.
Si mon client clique droit par erreur sur un onglet et puisqu'il n'aura pas le mot de passe, en quittant excel, le mdp lui est demandé. (enfin, sur tests chez moi)."
Je ne veux pas être obligé de donner mon mot de passe à chaque fois. C'est pour cela que ce serait super de pouvoir neutraliser les 3 options qui restent accessibles :
- Visualiser le code de la feuille,
- Oter la protection de la feuille (même si pas faisable sans le mdp),
- Sélectionner toutes les feuilles
Nouveau classeur joint avec mdp macro et feuilles protégées,
Re : Est-il possible de neutraliser toutes interventions modif feuilles (sauf saisie)
Re bonjour Philippe,
A toutes et à tous,
J'ai trouvé sur le net une macro qui supprime le "clic droit", soit pour le classeur ou pour une feuille choisie. Mais cela ne supprime pas le clic droit sur l'onglet des feuilles.
la voici :
Code:
Pour le supprimer sur toutes les feuilles, tu mets ceci dans thisworkbook
Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
Cancel = True
End Sub
Pour le supprimer sur une feuille, tu mets ceci dans chaque feuille concernée
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
End Sub
Ce serait super pour moi s'il était possible d'avoir un code qui supprime juste le "clic droit sur l'onglet de classeur.
Je joins un classeur test.
Bonne soirée à toutes et à tous,
Amicalement,
Lionel,