try:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("B6:B137")) Is Nothing Then
Columns("C:N").Hidden = True
If InStr(1, Target.Value, "C2P", vbTextCompare) > 0 Then Columns("D").Hidden = False
If InStr(1, Target.Value, "CS", vbTextCompare) > 0 Then Columns("E").Hidden = False
If InStr(1, Target.Value, "C4P", vbTextCompare) > 0 Then Columns("F").Hidden = False
If InStr(1, Target.Value, "C4S", vbTextCompare) > 0 Then Columns("G").Hidden = False
End If
End Sub
or
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("B6:B137")) Is Nothing Then
Columns("D").Hidden = InStr(1, Target.Value, "C2P", vbTextCompare) = 0
Columns("E").Hidden = InStr(1, Target.Value, "CS", vbTextCompare) = 0
Columns("F").Hidden = InStr(1, Target.Value, "C4P", vbTextCompare) = 0
Columns("G").Hidden = InStr(1, Target.Value, "C4S", vbTextCompare) = 0
End If
End Sub