Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

protection spécifique

3 réponses
Avatar
Sunburn
Bonjour,
je cherche à protéger mes feuilles, toutes d'un coup (et à les déprotéger
pareil bien sur), seulement, voila mes critères :
- ne pouvoir sélectionner que les cellules non verrouillées
- pouvoir saisir des commentaires dans ces cellules non verouillées
- pouvoir modifier la hauteur des lignes

J'ai cette macro actuellement, donc que dois-je modifier pour arriver à mes
fins ?
Je vous remercie.
------------
Sub PROTEGERFEUILLES()
Dim Nombre As Integer
Nombre = ActiveWorkbook.Sheets.Count
Application.ScreenUpdating = False
For I = 1 To Nombre
Worksheets(I).Protect , DrawingObjects:=True
Next I
End Sub
---------------

3 réponses

Avatar
Philippe.R
Bonsoir,
Avec l'aide de l'enregistreur de macros, j'obtiens :
pour ne pouvoir sélectionner que les cellules non verrouillées,
l'instruction :
ActiveSheet.EnableSelection = xlUnlockedCells
et pour la hauteur de ligne, l'expression ", AllowFormattingRows:=True", à
ajouter à la suite de Worksheets(I).Protect , DrawingObjects:=True
Les cellules non verrouillées, pouvant être sélectionnées, pourront recevoir
un commentaire.
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"Sunburn" a écrit dans le message de
news:
Bonjour,
je cherche à protéger mes feuilles, toutes d'un coup (et à les déprotéger
pareil bien sur), seulement, voila mes critères :
- ne pouvoir sélectionner que les cellules non verrouillées
- pouvoir saisir des commentaires dans ces cellules non verouillées
- pouvoir modifier la hauteur des lignes

J'ai cette macro actuellement, donc que dois-je modifier pour arriver à
mes
fins ?
Je vous remercie.
------------
Sub PROTEGERFEUILLES()
Dim Nombre As Integer
Nombre = ActiveWorkbook.Sheets.Count
Application.ScreenUpdating = False
For I = 1 To Nombre
Worksheets(I).Protect , DrawingObjects:=True
Next I
End Sub
---------------



Avatar
Sunburn
Bonjour phil,je te remercie.
mais j'ai encore un soucis, que je pensais résoudre par la possibilité de
modifier la hauteur de ligne.
en effet, j'ai une macro qui me redimensionne la hauteur des lignes de
certaines cellules.
et lorsque je verouille les feuilles, ça bug.....

Merci si vous pouvez m'aider..
Yann
voilà ma macro pour la hauteur automatique des lignes (ça plante aux ****)
---------------
'hauteur des lignes automatique
Private Sub Workbook_SheetChange(ByVal sh As Object, ByVal Target As Range)
Dim c As Range, LARGEUR As Double, HAUTEUR As Single, AncLarg As Single
If Target.WrapText = False Or Target.Count > 1 Then Exit Sub
For I = 1 To Target.MergeArea.Columns.Count
LARGEUR = LARGEUR + Target.ColumnWidth
Next I
Application.EnableEvents = False
With ActiveSheet.UsedRange
Set c = Range(.Cells(.Rows.Count, .Columns.Count).Address).Offset(1)
AncLarg = c.ColumnWidth
c.ColumnWidth = LARGEUR '(*****************)
c.WrapText = True
c.Value = Target.Value
Target.EntireRow.RowHeight = c.Height
Var = c.Address
c.Clear
c.ColumnWidth = AncLarg
End With
Recalcul
Application.EnableEvents = True
End Sub
------------
et ma macro de verouillage :
-----------
' Protection automatique de toutes les feuilles d'un classeur
Sub PROTEGERFEUILLES()
Dim Nombre As Integer
Nombre = ActiveWorkbook.Sheets.Count
Application.ScreenUpdating = False
For I = 1 To Nombre
Worksheets(I).Protect , DrawingObjects:=True
ActiveSheet.EnableSelection = xlUnlockedCells
AllowFormattingRows = True
AllowFormattingColumns = True 'rajouté, mais ça sert à rien
Next I
End Sub
---------------


"Philippe.R" a écrit :

Bonsoir,
Avec l'aide de l'enregistreur de macros, j'obtiens :
pour ne pouvoir sélectionner que les cellules non verrouillées,
l'instruction :
ActiveSheet.EnableSelection = xlUnlockedCells
et pour la hauteur de ligne, l'expression ", AllowFormattingRows:=True", à
ajouter à la suite de Worksheets(I).Protect , DrawingObjects:=True
Les cellules non verrouillées, pouvant être sélectionnées, pourront recevoir
un commentaire.
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel


Avatar
Philippe.R
Bonsoir,
Si j'ai bien suivi, la réponse apportée dans le nouveau fil que tu as ouvert
à 10:27 convient.
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"Sunburn" a écrit dans le message de
news:
Bonjour phil,je te remercie.
mais j'ai encore un soucis, que je pensais résoudre par la possibilité de
modifier la hauteur de ligne.
en effet, j'ai une macro qui me redimensionne la hauteur des lignes de
certaines cellules.
et lorsque je verouille les feuilles, ça bug.....

Merci si vous pouvez m'aider..
Yann
voilà ma macro pour la hauteur automatique des lignes (ça plante aux ****)
---------------
'hauteur des lignes automatique
Private Sub Workbook_SheetChange(ByVal sh As Object, ByVal Target As
Range)
Dim c As Range, LARGEUR As Double, HAUTEUR As Single, AncLarg As Single
If Target.WrapText = False Or Target.Count > 1 Then Exit Sub
For I = 1 To Target.MergeArea.Columns.Count
LARGEUR = LARGEUR + Target.ColumnWidth
Next I
Application.EnableEvents = False
With ActiveSheet.UsedRange
Set c = Range(.Cells(.Rows.Count, .Columns.Count).Address).Offset(1)
AncLarg = c.ColumnWidth
c.ColumnWidth = LARGEUR '(*****************)
c.WrapText = True
c.Value = Target.Value
Target.EntireRow.RowHeight = c.Height
Var = c.Address
c.Clear
c.ColumnWidth = AncLarg
End With
Recalcul
Application.EnableEvents = True
End Sub
------------
et ma macro de verouillage :
-----------
' Protection automatique de toutes les feuilles d'un classeur
Sub PROTEGERFEUILLES()
Dim Nombre As Integer
Nombre = ActiveWorkbook.Sheets.Count
Application.ScreenUpdating = False
For I = 1 To Nombre
Worksheets(I).Protect , DrawingObjects:=True
ActiveSheet.EnableSelection = xlUnlockedCells
AllowFormattingRows = True
AllowFormattingColumns = True 'rajouté, mais ça sert à rien
Next I
End Sub
---------------


"Philippe.R" a écrit :

Bonsoir,
Avec l'aide de l'enregistreur de macros, j'obtiens :
pour ne pouvoir sélectionner que les cellules non verrouillées,
l'instruction :
ActiveSheet.EnableSelection = xlUnlockedCells
et pour la hauteur de ligne, l'expression ", AllowFormattingRows:=True",
à
ajouter à la suite de Worksheets(I).Protect , DrawingObjects:=True
Les cellules non verrouillées, pouvant être sélectionnées, pourront
recevoir
un commentaire.
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php" target="_blank" class="text-blue hover:opacity-90 " style="word-break: break-all;" rel="noopener nofollow">http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel