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 ?

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.
 

TooFatBoy

XLDnaute Barbatruc
Une proposition avec un Nom :
VB:
Sub test()
'
    ActiveWorkbook.Names.Add Name:="MemoPlage", RefersToR1C1:="=Feuil1!R2C3:R6C4,Feuil1!R4C8:R4C12,Feuil1!R4C13"
    Range("MemoPlage").Select

End Sub

Ou, pour mieux voir :
VB:
Sub test()
'
    Range("A1").Select
Stop
    ActiveWorkbook.Names.Add Name:="MemoPlage1", RefersToR1C1:="=Feuil1!R2C3:R6C4,Feuil1!R4C8:R7C12,Feuil1!R5C13"
    Range("MemoPlage1").Select
Stop
    Range("A1").Select
Stop
    ActiveWorkbook.Names.Add Name:="MemoPlage2", RefersTo:="=Feuil1!C2:D6,Feuil1!H4:L7,Feuil1!M5"
    Range("MemoPlage2").Select

End Sub
 

Pièces jointes

  • Test-memorisation-plage-verrouillee.xlsm
    22.6 KB · Affichages: 2
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re

@Dudu2
Pourquoi le VBA quand Excel permet en natif de le faire ?
D'autant plus que la méthode que j'ai posté est multi-feuilles.
(cf message#15)
Et correspond au titre de la discussion
Une manière rapide de trouver les cellules verrouillées

 

Staple1600

XLDnaute Barbatruc
Re

@TooFatBoy
Un effacement manuel ou par macro ?

Sur ce , je coupe la machine
Bonne fin de soirée.

PS: Sur ce coup, le CTRL+F fait mieux que VBA
Car dans Format il a plein d'autres choix possibles (*)
Faites le test, vous verrez, il y a pas photo.
(*) Qui intéresseront les utilisateurs non chevronnés d'Excel (et peu à l'aise avec le VBA)
Il y aura surement de ces utilisateurs à lire ce fil, non ?
 

TooFatBoy

XLDnaute Barbatruc
Et correspond au titre de la discussion
Une manière rapide de trouver les cellules verrouillées
Mais ne correspond pas totalement au titre de la discussion : "VBA - Une manière rapide de trouver les cellules verrouillées ?"

En revanche, mémoriser la plage dans un Nom semble pas mal correspondre au titre de la discussion : c'est en VBA et c'est rapide à retrouver (il suffit d'utiliser le Nom).


Un effacement manuel ou par macro ?



Sur ce , je coupe la machine
Bonne fin de soirée.
Bonne nuit
 

Staple1600

XLDnaute Barbatruc
Re

@TooFatBoy
Les utilisateurs aguerris que nous sommes, savons très bien quand il faut privilégier les fonctions natives au VBA (et vice versa), non ?
C'est d'ailleurs ce que l'on conseille aux débutants sur ce forum, non ?

Rien que le fait d'écrire la macro, ou définir des noms est forcément moins rapide qu'un CTRL+H

Tu n'as pas du lire mon précèdent message (notamment la fin)
 

Staple1600

XLDnaute Barbatruc
Re

@Dudu2
Juste une précision (car on ne le voit pas sur ma copie d'écran du message#15)
Les adresses de cellules qui s'affichent sont des liens hypertextes
Quand on clique sur une adresse la cellule est sélectionnée.

Cette fois, je coupe vraiment. Bonne fin de soirée.
 

TooFatBoy

XLDnaute Barbatruc
Les utilisateurs aguerris que nous sommes, savons très bien quand il faut privilégier les fonctions natives au VBA (et vice versa), non ?
Hélas je ne suis pas très aguerri et je ne savais pas qu'il fallait "privilégier les fonctions natives au VBA". Je croyais même qu'il fallait privilégier VBA pour développer des "applications" qui en font le plus possible en VBA pour que l'utilisateur n'ait pas à le faire et se concentre sur l'essentiel tout en ayant un minimum de choses à faire.

Ca confirme que j'ai encore énormément de choses à apprendre sur Excel et son utilisation !


Et je ne comprends pas bien le principe de ton truc.
Donc on a une macro qui se déroule. Il faut prévoir un Stop, je suppose, pour aller chercher à la main les cellules qu'on n'a pas mémorisées dans un Nom, puis on doit copier manuellement les adresses de la plage, puis les coller quelque part pour que la macro soit au courant desdites adresses, et ensuite on relance la macro pour qu'elle puisse terminer son boulot en utilisant la plage ???
 
Dernière édition:

Dudu2

XLDnaute Barbatruc
Bonjour les posteurs,
@patricktoulon, merci pour cette précision.
@Staple1600, merci, très intéressant, je ne connaissais pas du tout.En effet ça répond à la question, mais tu remarqueras que j'ai préfixé le sujet par VBA -. Et je ne sais pas faire en VBA. Pourquoi en VBA ? Parce que c'est dans le cadre d'une macro qu'un utilisateur (comptable) m'a demandé de faire. Je n'ai pas le choix.
 
Dernière édition:

Dudu2

XLDnaute Barbatruc
Oui j'ai vu.
J'ai essayé de reproduire via des fonctions mais je galère à lui faire comprendre que je veux une adresse de Range. Il me change systématiquement le Range par rapport à l'ActiveCell. Ça me gave !
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…