Microsoft 365 Proteger un classeur avec macro

pelerin65

XLDnaute Occasionnel
Bonjour le forum

je voudrais protéger un classeur afin d'éviter que des formules ou code VBA soit modifiées ou effacées.
j'ai essayé de protéger avec protéger les feuilles avec un code mais lorsque la protection des feuilles sont mises, les macros et liens ne fonctionnent plus.

Y aurait-il une solution afin de protéger mon travail
Merci d'avance

si besoin je peux joindre le fichier
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonsoir Pelerin,
Les mots de passe sur XL ou le VBA n'offrent qu'une protection très très limitée.
Ceci dit vous pouvez faire :
VB:
Sub Unprotect()
    ActiveSheet.Unprotect ("1234")
    [E4] = "Feuille déprotégée"
End Sub
Sub Protect()
    If ActiveSheet.ProtectContents = True Then Exit Sub  ' Vérifie si feuille protégée
    [E4] = "Feuille protégée"
    ActiveSheet.Protect ("1234")
End Sub
Les macros peuvent se lancer par appui sur les boutons, et les liens hypertextes sont accessibles même feuille protégée. Voir PJ.
 

Pièces jointes

  • Classeur2.xlsm
    14.4 KB · Affichages: 7

pelerin65

XLDnaute Occasionnel
bonjour Sylvanu

Merci pour ta solution en mettant ce code je suis obligé de mettre les deux boutons à ce que je comprends
il y a pas de solution sans bouton comme sur Excel protéger la feuille par exemple puis on mets un code secret pour protéger
merci de votre aide
 

pelerin65

XLDnaute Occasionnel
Bonjour Sylvanu

Je vais mettre en pièce jointe mon fichier.
J'aimerai voudrais protéger l'ensemble du classeur.
Lorsqu'on l'ouvres on puisse l'utiliser.
Sur la feuille "Programme annuel" les cellules A3,B3,C3,D3 soient modifiables en écriture
Sur la feuille 4 "Notes Loc Ng" les cellules A5 à M40 et la cellule C2 soient modifiables en écriture
Et sur la feuille "Recherche RT" la Cellule C5 et E6 "lien carte du réseau ferré" soient Modifiables.
je suis à la recherche pour créer un lien hypertexte avec une image de la carte ferre ou son logo" qui serait en cellule B3. à la place du lien qui se trouve en E6
j'espère être claire et de ne pas trop prendre de votre temps.
Merci d avance de votre aide.

 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,
Désolé, votre fichier est inexploitable. XL me répond :

1638110056974.png


Donc en PJ un fichier où j'ai respecté le nom des onglets.
Le VBA est inutile. On peut déprotéger certaines cellules seulement. Elles sont alors accessibles même quand la feuille est protégée.
Explication dans l'onglet Tableau de bord.
 

Pièces jointes

  • Pelerin.xlsm
    20.7 KB · Affichages: 2

pelerin65

XLDnaute Occasionnel
Rebonjour
Je remets un lien
en espérant pas vous déranger
merci d'avance.

je vais faire comme vous dites mais je crois que les boutons click ne fonctionnent pas quand c'est protégé

 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,
Décidemment non, ça ne passe pas. Même message.
Peut être un incompatibilité de 365 vers 2007 ! Ce ne serait pas impossible.
je crois que les boutons click ne fonctionnent pas quand c'est protégé
Qu'est ce qu'un "bouton click" ?
Dans ma première PJ on voit qu'un bouton Shape marche.
Et où se trouve ce bouton Click dans votre fichier ?
( je peux l'ouvrir après réparation, mais impossible de l'enregistrer sans planter. )
Inspirer vous de ma PJ précédente, cela devrait vous tirer d'affaire.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Je suppose que vos boutons sont des activesX fait par en mode développeur.
En PJ un exemple avec ce type de bouton, un autre en shape, et en réutilisant la macro déjà donnée en exemple en post #2:
VB:
Private Sub CommandButton1_Click()
    ActiveSheet.Unprotect ("1234")
    [F3] = "": [F8] = "":
    [F3] = "Vous venez de cliquer sur le bouton click"
    ActiveSheet.Protect ("1234")
End Sub
Sub Clic()
    ActiveSheet.Unprotect ("1234")
    [F3] = "": [F8] = "":
    [F8] = "Vous venez de cliquer sur le bouton shape"
    ActiveSheet.Protect ("1234")
End Sub
Sub Effacer()
    ActiveSheet.Unprotect ("1234")
    [F3] = "": [F8] = "":
    ActiveSheet.Protect ("1234")
End Sub
 

Pièces jointes

  • Pelerin2.xlsm
    35.4 KB · Affichages: 4

pelerin65

XLDnaute Occasionnel
bonjour sylvanu

fichier enregistrer au format xlsm

et le deuxième fichier comme demandé mais je macro ne vont pas fonctionner donc je sais pas si vous pourrez voir le problème.

merci encore de vous pencher sur mon problème.
 

Pièces jointes

  • Classeur1.xlsm
    154.5 KB · Affichages: 1

pelerin65

XLDnaute Occasionnel
Bonjour
j'ai fait un essai d'ouvrir le fichier du message précédant. il se télécharge sans soucis donc je comprends pas

et quand j appuies sur le bouton commandbouton afficher journée voila le bug
Capture d’écran 2021-11-29 101731.png


voila quand je mets une protection sur la feuille programme quand j'appuies sur le command bouton effacer
Capture d’écran 2021-11-29 101731.png

Capture d’écran 2021-11-29 101351.png

merci d'avance de votre aide
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Pelerin,
En PJ sur la feuille "Recherche RT" j'ai mis
- Un ex de lien toujours accessible
- Des messages apparaissant par appui sur les boutons
- Des cellules déprotégées.
Les 4 macros sont identiques pour faire simple :
VB:
Private Sub CommandButton1_Click()
    ' [Message] est le nom de la cellule B13
    ActiveSheet.Unprotect ("1234")                                  ' On déprotège la feuille
    [Message].Interior.Color = RGB(200, 255, 255)                   ' On change la couleur de fond
    [Message] = "Vous venez de cliquer sur le bouton NOTES LOC NG"  ' On change le message
    ActiveSheet.Protect ("1234")                                    ' On reprotège la feuille
End Sub
 

Pièces jointes

  • Classeur1 (1).xlsm
    119.3 KB · Affichages: 3

Discussions similaires

Statistiques des forums

Discussions
312 890
Messages
2 093 352
Membres
105 696
dernier inscrit
FrancisR