Rellenar Celda según Texto - VBA

Actualmente tengo este código que me permite identificar los textos ahí relacionados en un rango o celda especifica y si los encuentra los pinte de un color, pero ahí estoy diciendo que lo busque en cualquier ubicación de cada celda y quisiera que esto solamente me evaluara la primera palabra de cada celda ya que a veces me esta pintando celdas que no debería pintar como por ejemplo:

Pinta en rojo porque dice la palabra hacienda pero no esta al principio del texto de la celda, ¿cómo puedo evaluar esta coindicion mencionada?

Muchas gracias

PD: Se que en mi código esta el asterisco que lo que me hace es que me encuentre una coincidencia en cualquier parte, eso fue parte de una primera validación pero ahora solamente deseo evaluar la primera palabra de cada celda y si cumple con las palabras dentro de mi IF que las pinte con color.

CODIGO

Range("AB2:AB" & Range("E" & Cells.Rows.Count).End(xlUp).Row).Select
For Each Celda In Selection

If Celda.Value Like "*" & "APTO " & "*" Or Celda.Value Like "*" & "NORTE " & "*" _
Or Celda.Value Like "*" & "CLL " & "*" Or Celda.Value Like "*" & "CRA " & "*" _
Or Celda.Value Like "*" & "DIAG " & "*" Or Celda.Value Like "*" & "VRDA " & "*" _
Or Celda.Value Like "*" & "HACIENDA " & "*" Or Celda.Value Like "*" & "CALLEJON " & "*" _
Or Celda.Value Like "*" & "VEREDA " & "*" Or Celda.Value Like "*" & "CARRERA " & "*" _
Or Celda.Value Like "*" & "APT " & "*" Or Celda.Value Like "*" & "KR " & "*" _
Or Celda.Value Like "*" & "NO RECUERDA" & "*" Or Celda.Value Like "*" & "NOTIENE " & "*" _
Or Celda.Value Like "*" & "CASA " & "*" Or Celda.Value Like "*" & "CONJ " & "*" _
Or Celda.Value Like "*" & "CALLE " & "*" Or Celda.Value Like "*" & "FINCA " & "*" _
Or Celda.Value Like "*" & "CAS " & "*" Or Celda.Value Like "*" & "CDND " & "*" _
Or Celda.Value Like "*" & "CALL " & "*" Or Celda.Value Like "*" & "TORRE " & "*" _
Or Celda.Value Like "*" & "PISO " & "*" Or Celda.Value Like "*" & "CORG " & "*" _
Or Celda.Value Like "*" & "NO REGISTRA" & "*" Or Celda.Value Like "*" & "NO SABE " & "*" _
Or Celda.Value Like "*" & "VD " & "*" Or Celda.Value Like "*" & "VR " & "*" _
Or Celda.Value Like "*" & "URG " & "*" Or Celda.Value Like "*" & "VRA " & "*" _
Or Celda.Value Like "*" & "HDA " & "*" Or Celda.Value Like "*" & "CRE " & "*" _
Or Celda.Value Like "*" & "NO " & "*" Or Celda.Value Like "*" & "KL " & "*" _
Or Celda.Value Like "*" & "@" & "*" Or Celda.Value Like "*" & "SECTOR " & "*" _
Or Celda.Value Like "*" & "CASA" & "*" Or Celda.Value Like "*" & "SECTOR " & "*" _
Or Celda.Value Like "*" & "AUTOPISTA" & "*" _
Then
Celda.Interior.ColorIndex = 3
End If

Agradezco la ayuda que me puedan brindar es un tema bastante urgente.

2

2 respuestas

Respuesta
3

Excel no es lo mío, pero si quieres obtener la "cadena" de la izquierda

Cuando pulso Enter

El código es igual para Excel

Texto11 = Left([NombreCompañia], InStr([NombreCompañia], " ") - 1)

O sea, tienes que usar Left...

Respuesta
3

Te anexo la macro actualizada, solamente completa el resto de las palabras en el array

Sub Poner_Color()
    Range("AB2:AB" & Range("E" & Cells.Rows.Count).End(xlUp).Row).Select
    pls = Array("APTO", "NORTE", "CLL", "CRA", "DIAG", "VRDA", "HACIENDA", _
                "CALLEJON", "VEREDA", "CARRERA", "APT", "KR", "NO RECUERDA", _
                "NOTIENE", "CASA", "CONJ", "CALLE", "FINCA", "CAS")
    For Each celda In Selection
        For j = LBound(pls) To UBound(pls)
            largo = Len(pls(j))
            If Left(celda.Value, largo) = pls(j) Then
                celda.Interior.ColorIndex = 3
            End If
        Next
    Next
End Sub

'.[Sal u dos. Dante Amor. No olvides valorar la respuesta. 
'.[Avísame cualquier duda

Buenas noches Dante,

Muchas gracias por tu ayuda, pero tengo una inquietud...

He realizado una prueba con tu código con las palabras que colocaste en tu array y copiando y pegando tu código y evaluando el texto en la columna AB el recorre la columna pero no pinta ninguna celda con un color para identificar la primera palabra de cada celda con las contenidas en el Array.

En el arreglo que hiciste aparece no tiene, cra y le asigne ese texto en la primera palabra a algunas celdas pero aun así no me las identifico.

Agradezco mucho tu ayuda.

Puedes poner una imagen para ver cómo están tus datos.

Procura que en la imagen se vean las filas y las columnas de excel

¡Gracias!

Buenas noches, Creo que ya pude darle solución al tema planteado.

Muchas gracias Dante por tu excelente apoyo.

Saludos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas