VBA Excel déprotection partielle

ripou

XLDnaute Nouveau
Bonjour à tous,

J'ai besoin d'un petit coup de pouce sur vba excel 2003.
J'ai une macro me seravnt à protéger l'intégralité de mon classeur.


Sub Macro1()
'


rrr = InputBox("donnez le mot de passe svp")
For Each ss In Application.Sheets


ActiveWindow.DisplayHeadings = False
ss.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:=rrr

ss.Protect

Next

Sheets("Accueil").Select

End Sub


Seulement, il y a une feuille sur laquelle je veux que la plage I4:I49 ne soit pas protégée...
Help ?

Merci bcp

Ripou
 

pacoako

XLDnaute Occasionnel
Re : VBA Excel déprotection partielle

Exactement comme alegro dit...

Par défaut toutes les cellules d'une feuille sont protégées. Si tu veux que certaines d'entre elles ne soient pas protégées lorsque tu vérrouilles ta feuilles tu dois sélectionner la cellule ou la plage de cellules que tu veux dévérouiller et click-droit --»
Format de Cellule ---> Décocher / Protection sur les plages que tu veux laisser accessible

Bonne journée =)
 
Dernière édition:

Paritec

XLDnaute Barbatruc
Re : VBA Excel déprotection partielle

Bonjour Ripou le forum,
tu mets dans ta macro mais sans l'avoir je ne sais pas ou

Feuil1.Range("I4:I49").Selection.Locked = False
Feuil1 ou ton nom de feuille
d'ou l'intérêt de mettre un bout de fichier!!!

bonne journée
Papou
 

ripou

XLDnaute Nouveau
Re : VBA Excel déprotection partielle

Ok merci beaucoup Papou!

J'ai une autre question relative à la protection totalee cette fois ci du classeur et de TOUTES les feuilles.
Voici la macro associé :


Sub Protéger()
rrr = InputBox("donnez le mot de passe svp")
For Each ss In Application.Sheets



ss.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:=rrr
ActiveSheet.EnableSelection = xlNoSelection
ss.Protect

Next

Application.DisplayFullScreen = True
ActiveWindow.DisplayHeadings = False
ActiveWindow.DisplayWorkbookTabs = False
ActiveWindow.DisplayHorizontalScrollBar = False
ActiveWindow.DisplayVerticalScrollBar = True
ActiveWindow.DisplayGridlines = False
Application.CommandBars("Worksheet Menu Bar").Enabled = True

Sheets("Accueil").Select


'
End Sub

Toutes les feuilles sont protégées dc tt va bien mais je veux en plus de ça que le clic soit impossible, c'est à dire que l'on ne puisse pas changer de cellule avec un clic. ça fonctionne avec certaines pages mais pas avec d'autres (en l'occurence celles nouvellement ajoutées).

Merci à vous excelonautes

Ripou
 

Paritec

XLDnaute Barbatruc
Re : VBA Excel déprotection partielle

Bonsoir Ripou,le forum,
alors si je comprend car j'en suis pas sur tu veux ne pas pouvoir sélectionner les cellules?
mais à quoi te sert ton classeur, juste pour lire les feuilles?
bon enfin de toutes façons tes cellules sauf la plage A5:A49 de tête de ta feuille ?
tu veux que le reste soit non modifiable, OK mais si tu mets ta sourie sur une cellule tu pourras la sélectionner, par contre tu ne pourras pas changer la valeur, ou entre quoi que ce soit dedans tu auras un message feuille protégée veuillez etc.
c'est cela que tu veux?
a+
Papou
 

Paritec

XLDnaute Barbatruc
Re : VBA Excel déprotection partielle

Bonjour Ripou Tototiti le forum,
Voilà un fichier ou tout marche bien, mais je ne vois toujours pas l'intérêt de ne pas pouvoir travailler sur au moins une feuille, mais ?????
bref regardes et dis moi si c'est ce que tu veux?
là si tu ajoutes des feuilles systématiquement à la prochaine ouverture ta feuille ou tes feuilles ajoutées seront aussi non sélectionnable et protégée;
a+
papou
 

Pièces jointes

  • EssaiRipou2.xls
    35 KB · Affichages: 102
Dernière édition:

MJ13

XLDnaute Barbatruc
Re : VBA Excel déprotection partielle

Bonjour Ripou, Tototiti, Paritec

Paritec, ton fichier ne me plaît pas trop, c'est le genre de code à éviter sur XLD. J'ai l'impression que j'ai perdu mes compléments sur XL2007(heureusement, je n'en avais qu'un).
Normalement quand on quitte le fichier on doit revenir sur sa configuraton du début.
J'aurai préféré avoir le fichier de Ripou.
Donc à l'avenir, on évite de jouer aux apprentis sorciers surtout si on ne maîtrise pas son sujet!
En plus tu ne donne même pas le mot de passe.


Voici ton code:

Code:
Sub Protéger()
Dim ws As Worksheet
rrr = InputBox("donnez le mot de passe svp")
 
For Each ws In Worksheets
If ws.Name = ("Accueil") Then
ws.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:=rrr
ws.EnableSelection = xlUnlockedCells
ws.Protect
Else:
ws.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:=rrr
ws.EnableSelection = xlNoSelection
ws.Protect
End If
Next
Application.DisplayFullScreen = True
ActiveWindow.DisplayHeadings = False
ActiveWindow.DisplayWorkbookTabs = True
ActiveWindow.DisplayHorizontalScrollBar = False
ActiveWindow.DisplayVerticalScrollBar = True
ActiveWindow.DisplayGridlines = False
Application.CommandBars("Worksheet Menu Bar").Enabled = True
Sheets("Accueil").Select
 
End Sub
 
Dernière édition:

Discussions similaires

Réponses
6
Affichages
556

Statistiques des forums

Discussions
312 765
Messages
2 091 883
Membres
105 084
dernier inscrit
lca.pertus