2017-01-07 3 views
1

Я написал скрипт VBA, который изменяет цвет вкладки листа в функции значения ячеек. Сценарий работает хорошо, когда я помещаю это значение, но когда я очищаю содержимое содержимого ячейки, сценарий имеет сбой, а вкладка цвета не сбрасывается.Tab ColorIndex reset excel vba

Сценарий на ThisWorkbook:

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», который кажется более естественным. –

Смежные вопросы