2017-08-08 1 views
0

J'ai une question: Je suis en train de faire deux différentes mise en forme conditionnelle à la fois. Mais cela ne fonctionne que le second. Im en utilisant si et Elseif, et en travaillant uniquement endif Qu'est-ce que je dois écrire pour obtenir les travailler à la fois? Premier après celui-là?vba de mise en forme conditionnelle avec si

For Each cell In Range("A1:AA1") 

    If cell.Value = "GM WP6 Sensor Status" Then 

Cells.FormatConditions.Delete 
    Columns("H:H").Select 
    Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlNotEqual, _ 
     Formula1:="=32671" 
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority 
    With Selection.FormatConditions(1).Interior 
     .PatternColorIndex = xlAutomatic 
     .Color = 255 
     .TintAndShade = 0 
    End With 
    'Selection.FormatConditions(1).StopIfTrue = False 
    Columns("H:H").Select 
    Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _ 
     "=LEN(TRIM(H1))=0" 
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority 
    With Selection.FormatConditions(1).Interior 
     .Pattern = xlNone 
     .TintAndShade = 0 
    End With 
    Selection.FormatConditions(1).StopIfTrue = False 
    Range("A1").Select 

''''''''''''''''''''''''''Tikrina kita 


ElseIf cell.Value = "GM WP6 Sensor Status light" Then 

Cells.FormatConditions.Delete 
    Columns("I:I").Select 
    Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlNotEqual, _ 
     Formula1:="=32767" 
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority 
    With Selection.FormatConditions(1).Interior 
     .PatternColorIndex = xlAutomatic 
     .Color = 255 
     .TintAndShade = 0 
    End With 
    Selection.FormatConditions(1).StopIfTrue = False 
    Columns("I:I").Select 
    Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _ 
     "=LEN(TRIM(I1))=0" 
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority 
    With Selection.FormatConditions(1).Interior 
     .Pattern = xlNone 
     .TintAndShade = 0 
    End With 
    Selection.FormatConditions(1).StopIfTrue = False 
    Range("A1").Select 
    End If 
Next cell 

Répondre

1

S'il vous plaît essayer ce ...

Sub ConditionalFormatting() 

Columns("H:H").FormatConditions.Delete 
Columns("I:I").FormatConditions.Delete 

If Application.CountIf(Range("A1:AA1"), "GM WP6 Sensor Status") > 0 Then 
    Columns("H:H").FormatConditions.Add Type:=xlExpression, Formula1:= _ 
     "=AND(LEN(TRIM(H1))>0,H1<>32671)" 
    Columns("H:H").FormatConditions(Columns("H:H").FormatConditions.Count).SetFirstPriority 
    With Columns("H:H").FormatConditions(1).Interior 
     .PatternColorIndex = xlAutomatic 
     .Color = 255 
     .TintAndShade = 0 
    End With 
End If 

If Application.CountIf(Range("A1:AA1"), "GM WP6 Sensor Status light") > 0 Then 
    Columns("I:I").FormatConditions.Add Type:=xlExpression, Formula1:= _ 
     "=AND(LEN(TRIM(I1))>0,I1<>32671)" 
    Columns("I:I").FormatConditions(Columns("I:I").FormatConditions.Count).SetFirstPriority 
    With Columns("I:I").FormatConditions(1).Interior 
     .PatternColorIndex = xlAutomatic 
     .Color = 255 
     .TintAndShade = 0 
    End With 
End If 
End Sub 
+0

erreur temps d'exécution 5. appel de procédure non valide ou argument. A ceci: Colonnes ("H: H") FormatConditions.Add Type:. = XlExpression, Formule1: = _ "= ET (LEN (TRIM (H1))> 0, H1 <> 32671)" –

+0

i apporter quelques corrections ça marche maintenant :) merci @sktneer –

+0

@SkirmanteValentaite De rien! :) – sktneer