Grouper/dissocier avec feuille protégée

Sybille

XLDnaute Junior
Bonjour,

Je souhaite protéger plusieurs feuilles en gardant la possibilité d'utiliser les groupes.
je sais que plusieurs discussions à ce sujet ont été clôturées, toutefois, après moult essai, je ne peux toujours pas utiliser les groupe que j'ai créé quand ma feuille est protégé. :confused:

j'ai trouvé dans les autres posts la macro suivante:

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

J'ai évidemment essayer d'adapter cette macro à mon fichier (en pièce jointe):
Remplacement de "Feuil 1" par "S01"
Remplacement du mot de passe par un mot de passe de mon choix
enregistrement, fermeture, réouverture de mon fichier...
etc...

Mais rien n'y fait, je n'arrive pas à faire fonctionner cette macro.
ça fait des heures que je dessus...

Pourriez vous m'aider sur ce sujet s'il vous plait?
Quitte à m'expliquer cette macro comme à un bébé de 3 ans!!
(ça serviras bien à d'autres personnes également un jour)

A l'avance merci,

Cordialement,
 

Pièces jointes

  • test.xls
    130.5 KB · Affichages: 86
  • test.xls
    130.5 KB · Affichages: 86
  • test.xls
    130.5 KB · Affichages: 81
G

Guest

Guest
Re : Grouper/dissocier avec feuille protégée

Bonjour,

WorkBook_Open doit être dans le module de code de ThisWorkBook et non dans un module général.

Dans le fichier joint tu trouveras deux macro 'Proteger' et 'Deproteger' dans un module général.
La macro 'Proteger' est appelée depuis l'évènement WorkBook_Open dans le module thisWorkbook.

Cela fonctionne chez moi.

A+
 

Sybille

XLDnaute Junior
Re : Grouper/dissocier avec feuille protégée

euh... re-moi,
y a t'il un moyen pour que cette macro fonctionne pour toutes mes feuilles??

Quand on écrit :
Public Sub Proteger()

With Worksheets("S01")
.EnableAutoFilter = True
.EnableOutlining = True
.Protect Contents:=True, Password:="Toto", UserInterfaceOnly:=True
End With

End Sub

On donne forcément le nom de la feuille à la ligne "With Worksheets("S01")"...
dois je recopier autant de fois ce message que je crée de feuille ou peut on renommer cette phrase pour que ça fonctionne avec toutes mes feuilles?

(Au moins ça pourrait m'éviter de répéter une centaine de fois la même chose quand je fais des macros)

Encore merci, d'avance!
 
G

Guest

Guest
Re : Grouper/dissocier avec feuille protégée

Re,

Et qu'as-tu essayer pour résoudre ton problème? Facile de demander, n'est-ce pas?;)

Code:
Public Sub Proteger()
    Dim sh As Worksheet
    For Each sh In ThisWorkbook.Worksheets
        sh.EnableAutoFilter = True
        sh.EnableOutlining = True
        sh.Protect Contents:=True, Password:="Toto", UserInterfaceOnly:=True
    Next sh
End Sub

Je te laisse imaginer pour la déprotection.

A+
 

Sybille

XLDnaute Junior
Re : Grouper/dissocier avec feuille protégée

Bonjour,

Alors, pour info, je ne connait personne dans mon entourage qui connaisse les macros, les utilisent, etc...
En fait, je compte déjà sur les doigts de la main les personnes qui utilisent excel avec d'autres formules que "somme", "min", "max" et autres formules courantes.

J'essaye donc d'apprendre toute seule à utiliser excel.
Je commence a bien m'en sortir avec excel (bien évidemment pas autant que vous), et j'aimerais commencer à utiliser les macros... on va dire que je suis au tout début de mon apprentissage, c'est à dire :
- Public Sub "nom de ma macro"... "End Sub"
- le petit ' pour les commentaires (En fait ça aide vachement pour se relire et bien comprendre sa macro!!)
- qu'il existe un bouton "enregistrer une macro" pour créer des macros simple (et surtout qui permettent de voir comment s'écrivent les macro derrières en VBA, toujours dans le but d'apprendre à écrire en vba).
j'ai écrit un petit programme avec ce petit bouton que j'ai réussi a relire en vba, j'y ai mis plein de commentaire pour pouvoir relire la macro, et j'ai appris plein de chose...
a votre niveau vous trouveriez ce petit programme ridicule!!! mais n'oubliez pas qu'un jour, vous avez comme moi débuter!

La j'en suis a essayer de voir quelles sont les principales "fonctions" courante à utiliser.

DONC :
J'ai bien fouillé toutes les discussions à ce sujet, j'y ai trouvé plein "d'hypothèse" pour ce que je souhaite faire, comme "Worksheet_Change" , "_Selections_Change" , "thisworkbook"... apparemment l'idée de thisworkbook est la solution que tu as prise...
La il faut encore que je comprenne pourquoi tu as écrit ThisWorkbook.Worksheets et que tu as ajouter sh devant presque toutes les lignes!!!

J'avoue que ta phrase "Facile de demander, n'est-ce pas?" m'a un peu refroidit!
et que si "tu me laisses imaginer pour la déprotection", ça veux dire que je vais encore tomber sur un os!

Désolé pour le dérangement,

Merci tout de même pour ta réponse qui m'aide quand même à progresser.
 
G

Guest

Guest
Re : Grouper/dissocier avec feuille protégée

Bonjour,

Alors re-voici la macro commentée.
Code:
Public Sub Proteger()
     Dim sh As Worksheet  'Déclarer une variable de type Objet Feuille de classeur
     'Parcourir toute les feuilles de CE classeur (celui qui contient la macro)'
     For Each sh In ThisWorkbook.Worksheets 'Sh fait référence à la feuille en cours dans la boucle for ... Next
         'autoriser les filtres et groupage
         sh.EnableAutoFilter = True
         sh.EnableOutlining = True
         sh.Protect Contents:=True, Password:="Toto", UserInterfaceOnly:=True
     Next sh
 End Sub

Quant à ma question: 'facile de demander n'est-ce pas?' n'était là que pour t'inciter à chercher par toi même les solutions et nous les présenter. Tant de gens viennent sur ce forum, comme sur un marché au légumes. (et encore attendent-ils, qu'ils soient cuits). Nous ne pouvons faire la différence entre ceux qui chercher réellement à apprendre et ce qui se contentent qu'on leur ponde leur macro.

Si tu veux réellement apprendre, je t'inciterai à acheter un bouquin sur VBA et commencer par de petites choses, les bases et de progresser lentement. Si tu as une difficulté particulière, vient ici nous l'exposer et sans doute quelqu'un t'aidera.

A+
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 321
Messages
2 087 265
Membres
103 501
dernier inscrit
talebafia