Color de celdaS si cumple función

Hola! Cómo haría con VBA, para que (según lo que escriba en mi textbox1) UNICAMENTE las celdas en el rango "b3:¿n30" que tengan el valor del textbox1 al pulsar un commandbutton1 esas mismas celdas de se vuelvan de color azul?
Intente usar:
.
Private Sub CommandButton1_Click()
On Error Resume Next
Application.DisplayAlerts = False
Sheets("programa").Range("b3:n40").Select
If Not Selection.Value = TextBox1.Value Then
With Selection.Interior
.ColorIndex = 7
.Pattern = xlSolid
End With
End If
If Selection.Value = TextBox1.Value Then
With Selection.Interior
.ColorIndex = 6
.Pattern = xlSolid
End With
End If
End sub
.
Pero no me funciono, esta me llena todo el rango del mismo color y yo solo quiero que sean las que tengan el valor del textbox1

2 Respuestas

Respuesta
1
Esta seria la solución
Sub COLOREAR()
For Each tpt In Range("b3:n30")
If Range("a1").Value = tpt Then
tpt.Interior.ColorIndex = 5
End If
Next
End Sub
Cualquier otra duda me consultas
Respuesta
1
Prueba con este código:
Private Sub CommandButton1_Click()
Dim i As Integer
Dim j As Integer
ThisWorkbook.Sheets("programa").Activate
For i = 3 To 30
For j = 2 To 14 ' dede la columna B hasta la N
If Cells(i, j).Value = TextBox1.Value Then
Cells(i, j).Interior.ColorIndex = 7
Else
Cells(i, j).Interior.ColorIndex = 6
End If
Next j
Next i
End Sub 
Tu código no puede funcionar porque comparas un rango con un valor y el programa no sabe como comparar eso. De hecho si no fuera por la instrucción On resume next te da un error, preo con esa instrucción estas forzando a que pase al siguiente ignorando el error.
Dime si te sirve.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas