Déverrouillage de cellules impossible

Bonjour,

ce code me permet de détecter les cellules sans couleur dans un tableau :

Sub deverrouillage()

With Sheets("Feuil1")

Dim Plg As Range

    Dim Cel As Range, pl As Range
    For Each Cel In .Range("A21:AG410,E412:AG418,A22:AG425")
        If Cel.Interior.ColorIndex = xlNone Then
            If pl Is Nothing Then Set pl = Cel Else Set pl = Union(pl, Cel)
        End If
    Next Cel
    Set Plg = pl

.Unprotect password
Plg.Locked = False
.Protect password

End With

End Sub

( 'Plg' contient exactement les cellules que je veux. )

Je demande ensuite de déverrouiller cette plage avec le '.Locked = False' mais ce message apparaît :

"Erreur d'exécution '1004' :

Impossible de définir la propriété Locked de la classe Range. "

Il y a des cellules fusionnées mais je ne sais pas si c'est vraiment ça le problème...

Quelqu'un a une idée SVP?

Merci !

Essayez plutôt de déverrouiller chaque plage de cellule à part plutôt que de faire une UNION!

C'est la composition multi-zones qui doit être critique pour cette opération

Cdt

Bonjour Toukoul,

Merci pour ta réponse,

en fait j'ai des tableaux où je dois déverrouiller toutes les cellules blanches/vides, mais ce ne sont pas tout le temps les mêmes, ça bouge.

Je cherche simplement une manière de détecter ces cellules pour les déverrouiller par la suite.

Le Cells.SpecialCells(xlCellTypeBlanks) ne fonctionne pas, je ne sais pas pourquoi...

Par contre le xlCellTypeConstants oui, donc peut-être que je pourrais sélectionner l'inverse de celles-ci.

Si tu as une solution je suis vraiment preneur.

Merci beaucoup !

Bonjour,

Je ne vois une erreur que dans le cas où "pl" ne contient rien. De toute façon, votre code devrait être

Sub deverrouillage()

    With Sheets("Feuil1")

        Dim plage As Range
        Dim Cel As Range, pl As Range

        For Each plage In .Range("A21:AG410,E412:AG418,A22:AG425").Areas
            For Each Cel In plage
                If Cel.Interior.ColorIndex = xlNone Then
                    If pl Is Nothing Then Set pl = Cel Else Set pl = Union(pl, Cel)
                End If
            Next Cel
        Next plage

        .Unprotect Password
        If Not pl Is Nothing Then pl.Locked = False
        .Protect Password

    End With

End Sub

Bonjour thev,

Merci pour votre réponse.

En fait j'ai compris : parfois certaines cellules avec des couleurs se sélectionnent à cause du Union. C'est dû aux cellules fusionnées.

Il ne pouvait pas verrouiller car elle contenait une couleur.

Du coup j'ai changé une petite partie du tableau et tout est rentré dans l'ordre!

Merci en tout cas à vous deux pour l'aide, Toukoul et thev.

Rechercher des sujets similaires à "deverrouillage impossible"