Voir quelles cellules sont verrouillées

Résolu
Linda -  
 Linda -
Bonjour,
Existe-t-il un façon de voir en un seul coup d'oeil, les cellules que l'on peut modifier dans une feuille protégée.
Il n'y a pas de données dans ma feuille. J'ai beaucoup travaillé dessus et maintenant, je ne sais plus s'il y a des cellules déverrouillées qui devraient être verrouillées.
C'est quand même assez fastidieux de les passer une par une.
Merci.
A voir également:

4 réponses

eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
Bonjour à tous,

La petite macro en question qui colorie ces cellules. La macro propose de le faire sur une copie ou non.
Ouvre ce classeur, le tien avec la feuille concernée activée (et déverrouillée), et tape Ctrl+d.
https://www.cjoint.com/c/DEbkrSTHjJs
Sub CelDeverrouillees()
    Dim c As Range, rep As Long, nbC As Long
    rep = MsgBox("Travailler sur une copie de la feuille ?", vbQuestion + vbYesNoCancel, "Colorer les cellules déverrouillées")
    If rep = vbCancel Then Exit Sub
    If rep = vbYes Then ActiveSheet.Copy after:=ActiveSheet
    Application.ScreenUpdating = False
    For Each c In ActiveSheet.UsedRange
        If Not c.Locked Then
            c.Interior.ColorIndex = 35
            nbC = nbC + 1
        End If
    Next c
    If nbC > 0 Then MsgBox nbC & " cellules déverrouillées."
End Sub

eric

En essayant continuellement, on finit par réussir.
Donc plus ça rate, plus on a de chances que ça marche.(les Shadoks)
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
1
Linda
 
Bonjour eriiic,
Ça fonctionne. Mais, y a-t-il une façon d'annuler cette manipulation une fois que les cellules ont été vérifiée. Si non, j'activerai la macro sur une copie et je corrigerai sur mon original. J'ai des cellules avec du remplissage manuel et évidemment, il disparaît si j'utilise la fonction "aucun remplissage" par la suite.
Merci beaucoup.
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
y a-t-il une façon d'annuler cette manipulation
Non, ce n'est pas l'option que j'avais prise.
Autre version : https://www.cjoint.com/?DEbrDcBV1fP
Cliquer sur Restaurer à la fin pour remettre les couleurs d'origine.

eric

edit : le code oublié
Dans un module Standard :
Public sh As Worksheet, shCopie As Worksheet ', pl As Range

Sub CelDeverrouillees()
    Dim c As Range
    Set sh = ActiveSheet

    ActiveSheet.Copy after:=ActiveSheet
    Application.ScreenUpdating = False
    Set shCopie = ActiveSheet
    shCopie.Visible = xlSheetHidden
    sh.Activate
    ActiveSheet.UsedRange.Interior.ColorIndex = xlNone
    For Each c In sh.UsedRange
        If Not c.Locked Then
            c.Interior.ColorIndex = 35
        End If
    Next c
    Application.ScreenUpdating = True
    UF_Restaurer.Show vbModeless
End Sub


Bouton du UserForm :
Private Sub CommandButton1_Click()
    Dim c As Range
    Application.ScreenUpdating = False
    For Each c In sh.UsedRange
        c.Interior.ColorIndex = shCopie.Range(c.Address).Interior.ColorIndex
    Next c
    Application.DisplayAlerts = False
    shCopie.Delete
    Application.DisplayAlerts = True
    Me.Hide
End Sub
0
Linda
 
Je ne comprends pas comment utiliser la section "Bouton du UserForm". À quoi ça sert ?
La première macro fonctionne à merveille.
Merci.
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
Bonjour,
À quoi ça sert ?
Il me semble que je l'ai écrit : remettre les couleurs d'origine.
En réponse à ce que tu as demandé... Tu as oublié ?

eric
0
Linda
 
Désolée, "Je ne sais pas comment mettre en fonction" serait peut-être mieux comme expression. Je réussi la première macro, elle fonctionne. C'est pour le bouton du UserForm que je suis perdue. Je ne peux malheureusement pas faire cela maintenant. Je vais étudier un peu cette fonction et je vous reviendrai, si je n'arrive pas à le faire. Si j'y arrive, je vous le confirmerai et je marquerai résolu.
Merci de votre aide,
À plus tard,
0
Vaucluse Messages postés 26496 Date d'inscription   Statut Contributeur Dernière intervention   6 438
 
Bon jour
pas beaucoup de solution, sauf peut être un artifice:

lors de la protection de la feuille, décochez dans le menu qui s'affiche la ligne
"sélectionner les cellules verrouillées"

vous n'aurez alors accès qu'aux cellules déverrouillées, ce qui vous permettra de les repérer.

mais noter bien les adresses à modifier car il faudra ôter la protection pour les modifier

crdlmnt

Errare humanum est, perseverare diabolicum
0
Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
Bonjour,

Ou par VBA si tu as quelques notions, soit les cellules sont colorisée après avoir déprotégé la feuille ou même sous protection dans une msgbox on affiche l'adresse des cellules déverrouillées
0
Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
Re

en VBA code à placer dans un module

Sub CellulesDéverrouillées()
Dim myCell As Excel.Range
'activesheet.Unprotect 'déprotection de la feuille
For Each myCell In ActiveSheet.UsedRange
If myCell.Locked = False Then myCell.Interior.ColorIndex = 5 'colorisation des cellules déverrouillées
'activesheet.protect 'reprotection de la feuille
Next myCell
End Sub

ou tout simplement

Sub CellulesDéverrouillées()
Dim myCell As Excel.Range
If myCell.Locked = False Then MsgBox myCell.Address 'ou cette ligne donne l'adresse des cellules déverrouillées
If myCell.Locked = False Then Range(myCell.Address).Select 'ou encore cette ligne sélectionne les cellules déverrouillées
End Sub

Mais bon a aussi vite fait de protéger la feuille en décochant l'option Sélectionner les cellules verrouillées et de jouer avec la touche de tabulation qui sélectionnera les cellules déverrouillées les unes après les autres

A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
0
Linda
 
Bonjour Mike-31.
J'ai utilisé la macro d'eriiic, car je ne suis pas habituée au langage VBA et je n'ai eu qu'à la copier.
Merci tout de même pour vos informations.
Linda
0