Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
XL 2016VBA - Une manière rapide de trouver les cellules verrouillées ?
Boostez vos compétences Excel avec notre communauté !
Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force.
Apprenez, échangez, progressez – et tout ça gratuitement !
👉 Inscrivez-vous maintenant !
Bonjour,
Je n'y crois pas trop, mais à part parcourir les cellules une à une (ce qui n'est envisageable que sur un Range limité) y a-t-il un moyen de trouver le Range des cellules verrouillées d'une feuille ?
Merci.
Comme celle de l'objet Workbook sauf qu'il faut qualifier de l'objet Worksheet au lieu du Workbook.
Et attention dans ce cas la propriété Name des objets Name trouvés portent le préfixe de feuille contairement à la clé des élément de la collection de l'objet Worksheet..
Voici de quoi faire le test sur une feuille vierge
1) Sur un classeur vierge, lance la macro ci-dessous
Code:
Sub Preparation()
Sheets.Add
Cells.Locked = False
Range( _
"B6,B5:B6,D3:D4,F4:F7,C11:C12,D8:D9,G13:G19,B15:C17,D22:E24,A28:C33,E28:E29,E32:F34,E12,G23:H26" _
).Locked = True
End Sub
Ok, dans ce cas, pour trouver un Name particulier de la Collection Worksheet, il faut que je fasse une boucle sur les Worksheet.Names. Je ne peux pas le trouver directement.
@Phil69970,
Je ne sais pas s'il sent le pâté, mais je ne vois pas le lien entre une MFC et retrouver le Range des cellules verrouillées. Il doit me manque quelque chose.
En effet le gestionnaire de noms ne montre pas que le vrai nom tel qu'il est porté dans la propriété Name du second objet Name est en réalité Feuil2!FeuilleSpécific Il faut savoir que c'est la colonne Étendue qui le dit. Il montre le nom tel qu'il est compris par la méthode Range ou Evaluate de l'objet Worksheet plutôt que celle de l'objet Application.
@Dranreb,
Ok je vois ce que tu veux dire. Mais je trouve que ces subtilités de scope / étendue sur feuille / classeur sont difficiles à intégrer dans une lecture rapide du code à moins d'être un expert de la chose.
Et une petite différence de syntaxe et tout change. Peut-être est-il plus prudent au niveau du code d'en rester à la notion de nom.
@Staple1600 ,
Cette MFC est effectivement très subtile et efficace !
En réalité je suis en VBA pour essayer de trouver ce que ta MFC trouve rapidement visuellement.
@Staple1600 ,
Cette MFC est effectivement très subtile et efficace !
En réalité je suis en VBA pour essayer de trouver ce que ta MFC trouve rapidement visuellement.
De plus à la volée tu peux la créer en vba et toujours à la volée tu peux la supprimer quand tu n'en as plus besoin.
Perso j'ai trouvé cela sympa et qui pourrait convenir à ta demande ....
@Dudu2
En partant du code précédent, on peut tenter ceci
(fonctionne sur un exemple simple avec une feuille ne contenant pas de formules)
Code:
Sub Range_Cell_VER()
Dim rng As Range, p As Range, vVals As Variant
Set p = ActiveSheet.UsedRange
vVals = p.Value
With Application
.FindFormat.Clear
.ReplaceFormat.Clear
.FindFormat.Locked = True
.ReplaceFormat.Interior.Color = RGB(255, 0, 0)
Cells.Replace "*", "#N/A", , , , , True, True
Set rng = Cells.SpecialCells(2, 16)
.FindFormat.Clear
.ReplaceFormat.Clear
End With
MsgBox rng.Address
p = vVals
End Sub
Les valeurs initiales de la feuille sont réinjectées en fin de macro
- Navigue sans publicité - Accède à Cléa, notre assistante IA experte Excel... et pas que... - Profite de fonctionnalités exclusives Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel. Je deviens Supporter XLD