Microsoft 365 VBA ne fonctionne pas - feuille sécurisée

Diego-Andres

XLDnaute Nouveau
Bonjour à tous,

Pour le travail, je dois finaliser un fichier sécurisé contenant plusieurs macro.
- macro pour bloquer et débloquer toutes les feuilles à l'aide de boutons (feuille info) - obligé parce qu'il est transmis à d'autres organisations qui doivent le compléter;
- macro qui rajoute des lignes ( feuille FR 2020) - selon la comptabilisation
- je voudrais en plus rajouter un macro qui groupe et dégroupe les lignes et les colonnes ( feuille budget)


Private Sub Workbook_Open()
With Worksheets("Feuil9")
EnableAutoFilter = True
EnableOutlining = True
Protect Contents:=True, Password:="Toto", UserInterfaceOnly:=True
End With
End Sub

Je pensais utilisé ce code mais comme j'ai déjà un autre macro sur le Workbook_ Open cela ne fonctionne pas.
En plus de cela, dès que je sécurise le macro " rajouter des lignes " ne fonctionne pas non plus :(

Quelqu'un pourrait m'aider?
Merci d'avance et je joins mon fichier et au cas ou, le code est security

Andres
 

Pièces jointes

  • 200616 Budget - essaie.xlsm
    125.3 KB · Affichages: 7
Solution
VB:
Private Sub Workbook_Open()
For Each sh In Sheets
    sh.Protect "security"
Next sh
Feuil1.CommandButton2.Visible = False
Feuil1.CommandButton1.Visible = True
Feuil9.EnableOutlining = True
Feuil9.Protect Contents:=True, UserInterfaceOnly:=True
End Sub

Voilà, j'ai réussi avec ce code :)
Merci pour ton aide
Andres

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Diego-Andres,
Vous ne pouvez qu'avoir qu'une macro Workbook_Open.
Il vous vous suffit alors de l'enrichir :
VB:
Private Sub Workbook_Open()
For Each sh In Sheets
    sh.Protect "security"
Next sh
Feuil1.CommandButton2.Visible = False
Feuil1.CommandButton1.Visible = True
With Worksheets("2f.Budget")
    ActiveSheet.Unprotect ("security")
    EnableAutoFilter = True
    EnableOutlining = True
    ActiveSheet.Protect Password:="security"
End With
End Sub
 

Diego-Andres

XLDnaute Nouveau
Bonjour Sylvanu,

Merci, je ne savais pas qu'il y avait moyen de faire cela dans le Workbook. C'était pourtant pas compliqué mais j'avais pas trouvé comment imbriquer deux actions. Par contre, cela a fonctionné une fois ...mais plus part après :'(.

Pensez-vous qu'il y a aussi moyen d'activer la macro de la feuille "FR 2020" ?

Merci d'avance
Andres
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Qu'entendez vous par une seule fois ?
La macro s’exécute à chaque ouverture du fichier.
Il est difficile de lancer une macro qui est dans une feuille par un workbook_open, il vaut mieux la transférer dans un module standard.
 

Pièces jointes

  • 200616 Budget - essaie (1).xlsm
    134.1 KB · Affichages: 7

Diego-Andres

XLDnaute Nouveau
Bonjour, je voulais dire que lorsque je bloque mon classeur grâce à mon bouton " Bloquer",je ne peux plus grouper ou dissocier la feuille "Budget". J'ai le même problème avec mon autre macro "rajouter des lignes" qui se trouve directement dans une feuille.

Merci
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonsoir,
Mais ça n'a rien avoir avec le topic d'origine ?
Quand c'est verrouillé vous ne pouvez plus fusionner des cellules.
Par contre vous pouvez inserer supprimer des colonnes lignes, pour cela il faut mettre les bonnes options dans la protection des feuilles :
1.jpg
 

Diego-Andres

XLDnaute Nouveau
Bonjour,

Merci pour votre aide :). Mon topique était de faire fonctionner les deux macros
(l'un grouper/dissocier et l'autre insérer des lignes) lorsque mes feuilles sont protégées. Grâce à vous, j'ai pu faire fonctionner mon bouton " insérer une ligne " avec une feuille protégée. J'ai mis mon code VBA sur la feuille "FR 2020" et en module et j'ai coché " insérer une ligne" . Cela marche très bien. Je vais chercher pour que mon code qui permet de grouper et dissocier les lignes ou colonne fonctionne lorsque mes feuilles sont protégées. Je dois être proche du bon résultat grâce ) votre aide :).

Merci
Andres
 

Pièces jointes

  • 200616 Budget - essaie (1).xlsm
    133.3 KB · Affichages: 3

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour,
Comme expliqué dans mon post précédent, même si vous sélectionnez toutes les options lors de la protection, vous ne pouvez pas accéder à grouper/dégrouper lorsque la feuille est protégée.
Il vous donc déprotéger la feuille, grouper/dégrouper puis reprotéger.
 

Diego-Andres

XLDnaute Nouveau
VB:
Private Sub Workbook_Open()
For Each sh In Sheets
    sh.Protect "security"
Next sh
Feuil1.CommandButton2.Visible = False
Feuil1.CommandButton1.Visible = True
Feuil9.EnableOutlining = True
Feuil9.Protect Contents:=True, UserInterfaceOnly:=True
End Sub

Voilà, j'ai réussi avec ce code :)
Merci pour ton aide
Andres
 

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 915
Membres
101 837
dernier inscrit
Ugo