2017-01-07 13 views
1

セル値の関数でシートタブの色を変更するVBAスクリプトを作成しました。 値を入力するとスクリプトが正常に実行されますが、セルの内容の値をクリアすると、スクリプトにエラーが発生し、色のタブがリセットされません。 ThisWorkbookのTab ColorIndex reset excel vba

スクリプト:

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) 
If Not Application.Intersect(Target, Range("BH37")) Is Nothing Then 
    Call CouleurOnglet(Sh, Target) 
End If 
End Sub 

スクリプトモジュール上:

Sub CouleurOnglet(Sh As Object, Target As Range) 
With Sh 
    Select Case Target 
    Case Is = "OK" 
     .Tab.ColorIndex = 4 'Couleur verte 
    Case Is = "NOK" 
     .Tab.ColorIndex = 3 'Couleur rouge 
    Case Is = "A vérifier" 
     .Tab.ColorIndex = 45 'Couleur orange 
    Case Else 
     .Tab.ColorIndex = xlAutomatic 'reset couleur 
    End Select 
End With 
End Sub 

enter image description here

答えて

3

タブのデフォルトの色はのColorIndexの値-4142またはxlcolorindexnoneを持っている何の色ではありません。

.Tab.Color = xlAutomatic 

コード:

あなたが代わりに入れた場合は、必要に応じて

.Tab.ColorIndex = xlColorIndexNone 

はそれが動作するはずです。

+0

ニースなので、 '.ColorIndex'も参照してください。私たちは '.Color'を通らなければならないと思ったので、私は自分の答えを取り除きました。私はもっと自然な感じの' .Color'オプションを好んでいました。 –