Restreindre les couleurs de fond

bonjour à tous,

Je voudrais bien mettre en place une restriction à l'utilisateur pour qu'il ne puisse pas utiliser certaine couleur qui sont déjà utiliser dans mes MFC.

 Sub Worksheet_Change(ByVal Target As Range)
dim a,
ActiveSheet.Unprotect Password:="xx"
 i = Target.Row
 j = Target.Column
If j <> 32 Then
ActiveSheet.Unprotect Password:="xx"
If j = 28 Then ' colonne ou j'aimerai restreindre les couleurs
 a = 15261367 Or RGB(255, 255, 153) Or 12632256 Or 10092543
    If Cells(i, j).interrior.Color = a Then
    MsgBox "Couleur déjà Utilisée"
ActiveSheet.protect Password:="xx"
    Exit Sub
 End If
Else
.......

Mais évidemment ca ne fonctionne pas, la macro ne détecte même pas l'ajout d'une couleur, j'ai essayé en

Sub Worksheet_Change

Private sub Worksheet_Change

Si l'un d'entre vous à une idée pour gérer ceci

Bonjour,

Je crois (peut être que je me trompe) que Excel ne reconnaît pas le changement de couleur d'une cellule comme une modification...

Peut être si tu change d’événement mais .. les worksheet_selectionchange par exemple sont très lourd je trouve..

Je ne vois d'autres façon que ça dans l'immédiat.

Cdlt,

Mettre le classeur en ReadOnly ou en pdf...

bonjour a vous deux,

et merci pour les réponses,

Mais le worksheet_selectionchange s'approche effectivement de mon besoin mais il s'active avant que la couleur soit appliquée.....

je me replonge dans les événements pour voir si il y a mieux

galopin01 a écrit :

Mettre le classeur en ReadOnly ou en pdf...

Bonjour,

Tu peux assez facilement (et temporairement...) redéfinir les 56 couleurs de la palette à ta guise ...

Merci à vous trois mais la suggestion de VH_AE m'a mis sur la bonne piste avec un exemple qui correspond pratiquement à ma demande :

Option Explicit 

Dim x As Integer 
Dim Cell As String 

Private Sub Worksheet_Activate() 
        x = ActiveCell.Interior.ColorIndex 
        Cell = ActiveCell.Address 
End Sub 

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 
    On Error Resume Next 

    If Cell = "" Then 
        x = Target.Interior.ColorIndex 
        Cell = Target.Address 
        Exit Sub 
    End If 

    If Range(Cell).Interior.ColorIndex <> x Then _ 
        MsgBox "la couleur de la cellule " & Cell & " a changé" 

    x = Target.Interior.ColorIndex 
    Cell = Target.Address 
End Sub 

Merci

Rechercher des sujets similaires à "restreindre couleurs fond"