Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 VBA - Une manière rapide de trouver les cellules verrouillées ?

  • Initiateur de la discussion Initiateur de la discussion Dudu2
  • Date de début Date de début

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 !

Dudu2

XLDnaute Barbatruc
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..
 
Dernière édition:
@Dudu2
Désolé, je n'ai pas compris comment ça marche pour obtenir un Range des cellules verrouillées au final
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
Puis lance la macro, CellulesVerrouillées
 
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.
 
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.
Staple tu es sur ?

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 ....
 
Re

@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

Discussions similaires

  • Question Question
Microsoft 365 Probléme VBA
Réponses
8
Affichages
213
Réponses
17
Affichages
275
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…