protection excel

david.ridelaire

XLDnaute Junior
bonjour à tous,

est-il possible de protéger plusieurs feuilles d'un même classeur en une seule fois.

Sans ouvrir l'onglet outil protection dans chaque feuille.

D'avance merci pour vos réponses

DAVID
 

Jiheme

XLDnaute Accro
Re : protection excel

Bonjour David re le forum

Code ci dessous à mettre dans "This Workbook"

Code:
Sub ProtegeFeuilles()
Dim MaFeuille As Worksheet
For Each MaFeuille In Worksheets
    MaFeuille.Protect Password:="1234"
Next
End Sub
Sub DeProtegeFeuilles()
Dim MaFeuille As Worksheet
For Each MaFeuille In Worksheets
    MaFeuille.Unprotect Password:="1234"
Next
End Sub

A+
 

phyx

XLDnaute Nouveau
Re : protection excel

Boujours david, les gens du forum .

Si ça t'intéresse, j'ai fait une macro, tu clique sur un bouton et hop, un box apparait, tu met ton passe et toutes tes pages sont protégées.
Puis, pour les déprotéger, même principe, hop, un bouton.

Hyper pratique quand on arrête pas de protéger, déprotéger.
Il faut juste bien lié ses macros au dossier, et faire ses propres boutons avec une barre d'affichage perso. Pour le fichiers qui revient tout le tps, le fichier à mettre dans XLstart, du répertoire Excel. Je dis ça au cas où...


La protection:
Code:
Sub GPROTECT()
'
' Protection de toutes les feuilles du classeur (quelque soit le nombre)
' Le mot de passe est ici choisi
'
Dim Passe As String
Passe = InputBox(" Le mot de passe ? ", " Protection des feuilles du classeur ", _
"Taper votre mot de passe ici", 100, 50)
If Passe = "" Or Passe = "Taper votre mot de passe ici" Then MsgBox _
"C'est mieux de mettre un mot de passe, ça marche mieux..."
If Passe = "" Or Passe = "Taper votre mot de passe ici" Then Exit Sub

For Each feuille In Sheets
    feuille.Protect Password:=Passe, DrawingObjects:=True, Contents:=True, Scenarios:=True _
        , AllowFormattingColumns:=True, AllowFormattingRows:=True, AllowSorting:= _
        True, AllowFiltering:=True, AllowUsingPivotTables:=True
    feuille.EnableSelection = xlUnlockedCells
    Next feuille

la déprotection :
Code:
Sub GDéPROTECT3()
'
'*************** correction par les gestions d'erreur
'
' Déprotection de toutes les feuilles du classeur (quelque soit le nombre)
' Le mot de passe est ici choisi
'
Dim Passe As String
Passe = InputBox(" Le mot de passe ? ", " Protection des feuilles du classeur ", "Taper votre mot de passe ici", 100, 50)
If Passe = "" Or Passe = "Taper votre mot de passe ici" Then bouton = MsgBox(" Faut au moins mettre une lettre pour déprotéger, hein, sinon ...", 64, "Bah, t'as pas le code ?")
If Passe = "" Or Passe = "Taper votre mot de passe ici" Then Exit Sub
 
For Each feuille In Sheets
' SI le mot de passe est faux, ça buggera ICI ( REGLE !!! )
On Error GoTo fin
feuille.Unprotect Password:=Passe
Next feuille
ActiveWorkbook.Unprotect Password:=Passe
Exit Sub
fin:
MsgBox ("Mauvais mot de passe")
On Error GoTo 0
End Sub

' si on veut passer les erreurs possibe : "On Error Resume Next"

C'est pas parfait, mais, ça rend bien service et gagne bcq de temps !
En espérant avec au moins aidé quelqu'un dans cette maigre contribution.
 
Dernière édition:

phyx

XLDnaute Nouveau
Re : protection excel

j'ai bien pris note de vos post toutefois j'aimerais pouvoir appliquer un verrouillage de certaines cellules alors que d'autres pourraient être modifiées, y a til une option?

d'avacne merci

david

hola, tu vas découvrir en 1 jour ce que j'ai cherché au moins un mois.
j'ai une autre macro de verrouillage. Elle permet de déverrouiller toutes les cellules mise en jaune, de saisie quoi et de verrouiller le reste.
Pour verrouiller une cellule particulière, va dans format et protection, puis, verrouiller.
Ya aussi la barre des tâches, protection qui possède un bouton de verrouillage/déverrouillage bien pratique.

petit macro qui joue sur toutes les feuilles :
Code:
Sub CellulesGriséesDéVérouillées()
'
' Dévérrouillage de toutes les cellules grisées et sur TOUTES les feuilles !
' La couleur dévéroulliante --> jaune poussin !

For Each feuille In Sheets
    Application.FindFormat.Interior.ColorIndex = 6
    Application.ReplaceFormat.Interior.ColorIndex = 6
    Application.ReplaceFormat.Locked = False
    Application.ReplaceFormat.FormulaHidden = False
    ActiveCell.Replace What:="", Replacement:="", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=True, _
        ReplaceFormat:=True
    Cells.Replace What:="", Replacement:="", LookAt:=xlPart, SearchOrder:= _
        xlByRows, MatchCase:=False, SearchFormat:=True, ReplaceFormat:=True
Next feuille
End Sub
Voilà...
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 489
Messages
2 088 855
Membres
103 976
dernier inscrit
kaizertv2001@gmailcom