Vérrouillage de cellule en fonction d'une MEC

Bonjour,

Petite question car je suis perdu. J’ai un tableau avec des données et je voudrais verrouiller l'ensemble de mes cellules, à l'exception de celles qui ont une MEC spécifique (couleur de remplissage).

Pourquoi passer par une Macro ? C'est une base de données que je retravaille, et ma MEC est liée à des formules, donc impossible de sélectionner manuellement les cellules qui ont cette MEC ou celles qui n'en n'ont pas (la base de données est trop importante et aléatoire). Je voudrais donc effectuer ce verrouillage par Macro.

Après quelques recherches j'ai écrit le code suivant :

Pour information, la couleur de remplissage que j'utilise est "-4142"

Sub Verouiller()
Dim Cel, Plage As Range
Set Plage = ActiveSheet.Range("A1:P10000") 'Je voudrais sélectionner toute la feuille mais je ne trouve pas le code

ActiveSheet.Unprotect "xxxxxx"
For Each Cel In Plage
If Cel.Interior.ColorIndex <> -4142 Then (Le code de la couleur de remplissage que j’utilise)
    If Cel.Locked = False Then Cel.Locked = True
       End If
Next
ActiveSheet.Protect "xxxxxx"
End Sub

Mon code ne fonctionne pas car toute la feuille est verrouillée

je me suis aperçu en lisant les forums que le VBA ne gère pas le verrouillage par MEC de cette façon, il ne reconnait pas la couleur -4142 car elle est déterminée automatiquement par une MEC et pas de façon manuelle. En revanche il est question de "raison" de la MEC. Et je ne sais pas comment déterminer cette "raison"

Je cherche donc à modifier mon code pour qu'il me détecte la couleur issue de la mise en forme conditionnelle sur toute ma feuille, et qu'il me verrouille toutes les cellules qui ne sont pas éligibles à cette couleur de remplissage.

Je vous remercie par avance,

Bien cordialement,

Bonjour,

je me suis aperçu en lisant les forums que le VBA ne gère pas le verrouillage par MEC de cette façon, il ne reconnait pas la couleur -4142 car elle est déterminée automatiquement par une MEC et pas de façon manuelle. En revanche il est question de "raison" de la MEC. Et je ne sais pas comment déterminer cette "raison"

Bonjour, par raison on entend : la condition que tu as indiqué pour ta mise en forme. Si les cellules changes de couleur pour -4142 tu as bien indiqué une condition ?

( une raison )

Donc en vba il faudra que le test de la cellule soit réalisé sur cette même condition.

Haaaaa !

D'abord merci pour cette réponse ultra rapide !

J'ai bien une condition en colonne A.

J'ai une valeur en colonne A (de 0 à 5) qui est déterminée par une formule

Et la condition de ma MEC est :

Si valeur = 0 en colonne A alors la cellule de ma ligne associée en colonne M et P sur toute ma sélection= jaune (-4142)

Formule de MEC : =ET($a2=0) => Jaune (-4142)

je veux bien de l'aide pour écrire le code :)

Merci d'avance !

Sujet toujours d'actualité :) Si quelqu'un peut me dépanner

Bonjour Ju_69, Xmenpl,

Par défaut les cellules de la feuille sont cochées verrouillées. Cela n'a aucune incidence si la feuille n'est pas protégée.

Le code ci-dessous regarde les colonnes M et P ou sont présentes tes MFC. Et agit si les mêmes lignes sur la colonne A sont égales à zéro.

ActiveSheet.Unprotect 'Mot de passe
DerLig = Range("A" & Rows.Count).End(xlUp).Row
Set PlgM = Range("M1:M" & DerLig)
'Cellule dévérrouillée en colonne M si en colonne A la valeur à ligne identique égale 0
For Each Cel In PlgM
If Cel.Column = 13 And Cel.Offset(, -12) = 0 Then Cel.Locked = False Else Cel.Locked = True
Next
Set PlgP = Range("P1:P" & DerLig)
'Cellule dévérouillée en colonne P si en colonne A la valeur à ligne identique égale 0
For Each Cel In PlgP
If Cel.Column = 16 And Cel.Offset(, -15) = 0 Then Cel.Locked = False Else Cel.Locked = True
Next
'Toutes les autres cellules sont par défaut vérrouillées
ActiveSheet.Protect 'Mot de passe
End Sub

Donc après protection seules les cellules colorées seront accessibles.

Bons tests, bonne continuation.

Bonjour X Cellus,

Ça fonctionne à merveille.

Je ne sais pas pourquoi je me suis entêté a chercher un code en rapport avec ma MEC ... En fait un simple "SI" suffit et je sais parfaitement le faire...

Désolé j'ai cherché trop compliqué !

En tout cas, un très grand merci

Vous assurer tous sur ce forum, comme toujours !

Bien cordialement

A nouveau,

Ça fonctionne à merveille.

Ne pas oublier de clore le sujet si cela convient.

Rechercher des sujets similaires à "verrouillage fonction mec"