Macro para recorrer una fila

Llevo una parte de la macro. Lo que necesito es que me lea la fila A1 - hasta ultima celda con datos, y que si la celda contiene texto lo pinte de color. Tengo una parte de la macro, pero no me funciona.

Sub Columna_color()
lc = Cells(1, Columns.Count).End(xlToLeft).Column
For i = 1 To lc
If Cells(i, 1).Value = "FRUTAS" Then Cells.Interior.Color = RGB(0, 255, 0)
If Cells(i, 1).Value = "VERDURAS" Then Cells.Interior.Color = RGB(0, 190, 0)
Next
End Sub
Respuesta
1

[H o l a, el siguiente es un consejo: No deberías poner las preguntas como anónimo, después es difícil hacer el seguimiento.

Tu usuario puedes ser un seudónimo, no es necesario que pongas tu nombre, puede ser cualquier palabra o combinación de letras.



Lo que necesito es que me lea la fila A1 - hasta ultima celda con datos

¿Te refieres a que lea los datos hacia abajo (recorres filas) o hacia la derecha (recorrer columnas)?


E spero puedas cambiar tu pregunta de anónimo a tu clave de usuario.

Buen día, gracias Dante Amor.

Listo, ya hice mi pregunta pública. (una disculpa). Le comento más a detalle, donde necesito que me cambie el color de la celda es en los encabezados de mi hoja, los cuales se encuentra en la Fila A1 hasta A (rango variable). Todos mis encabezados son diferentes, por lo tanto tengo que hacer muchos if.

Gracias por su tiempo y su apoyo.

Los cuales se encuentra en la Fila A1 hasta A (rango variable).

Solamente para hablar el mismo idioma de excel. De "A1" y hasta "A10" son 10 filas en la columna "A".

Cuando tú dices "se encuentra en la fila A1", primero "A1" no es una fila, es una celda.

Después "hasta A", "A" sigue siendo la misma columna.

Supongo que tus encabezado están en la fila "1", empiezan en la celda A1 y terminan en la misma fila 1 pero columna variable.

¿Te hace más sentido de esa manera?


La instrucción cells funciona así: cells(fila, columna), entonces lo que va a cambiar en tu ciclo son las columnas y va a permanecer fijo la fila, en este caso la fila 1.

Entonces recorremos la fila 1 desde la columna 1 hasta la última columna con datos (lc).

Cambié la variable i a col, generalmente se utiliza la variable i para las filas, en este caso utilizaremos la variable col para que sea más significativo.

Prueba lo siguiente.

Sub Columna_color()
  Dim lc As Long, col As Long
  lc = Cells(1, Columns.Count).End(xlToLeft).Column
  For col = 1 To lc
    If Cells(1, col).Value = "FRUTAS" Then Cells(1, col).Interior.Color = RGB(0, 255, 0)
    If Cells(1, col).Value = "VERDURAS" Then Cells(1, col).Interior.Color = RGB(0, 190, 0)
  Next
End Sub

Si no es lo que necesitas, entonces pon 2 imágenes, una antes de ejecutar la macro y otra imagen con el resultado que te gustaría.

Me funciono perfecto, muchas gracias por tu tiempo y también agradezco el consejo de como plantear mejor mis preguntras.

Me alegra ayudarte, gra cias por comentar y también por mostrar ganas de aprender.

1 respuesta más de otro experto

Respuesta

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas