Cambiar de color a celdas con condición

Buenas noches. Estoy creando una macro que cambie de color a las celdas de un rango que contengan una condición de valor, por ejemplo los valores menores a 30 de verde y los mayores a 30 de rojo. El rango esta en una columna y se conoce la primera celda, pero se desconoce la ultima ya que normalmente se ingresan datos a diario. He creado esta macro pero por alguna razón no se termina de ejecutar y tengo que reiniciar el excel (aquí la celda activa es la primera celda del rango):
Sub Macro1()
Dim numero As Integer
numero = ActiveCell.Select
Sheets("Hoja1").Select
ActiveCell.Select
Do While Not IsEmpty(ActiveCell)
    If numero < 30 Then
        ActiveCell.Font.Bold = True
        ActiveCell.Font.Color = RGB(125, 125, 0)
    Else
        ActiveCell.Offset(1, 0).Select
    End If
    Loop
    MsgBox "FINAL"
End Sub
Si me pudiesen decir donde esta el error lo agradecería, necesito obligatoriamente ejecutar este comando desde una macro (aunque se que se puede hacer en formato condicional).

1 Respuesta

Respuesta
1
En esto, cada maestrillo tiene su librillo. Esto que tu quieres hacer yo lo hago con esta macro:
Sub Macro2()
1 If ActiveCell.Value <> "" Then
    If ActiveCell.Value < 30 Then
    ActiveCell.Font.Bold = True
    ActiveCell.Font.Color = RGB(256, 0, 0)
    Else
    ActiveCell.Font.Color = RGB(0, 256, 0)
    End If
ActiveCell.Offset(1, 0).Select
GoTo 1
Else
MsgBox "FINAL"
End If
End Sub
Entiendo que te tienes que colocar en la primera celda de la lista en el momento de poner en marcha la macro.
De todas formas, esto se hace también mediante el formato condicional. Con el formato condicional puedes ponerle dos condiciones, una para los valores menores de 30 y otra para los mayores y en cada uno de los casos estableces el formato que quieras, de la fuente o del relleno. Seleccionas toda la columna y le das formato condicional a toda y listo.
Si no tienes muy claro como se hace, me dices que versión de Excel tienes y te lo explico.
Gracias por la ayuda, de hecho me sirvió y de mucho. Ahora, lo que no me queda muy claro es el uso del numero "1" al comienzo de la macro, se que funciona como un punto de partida dado el "GoTo 1" del final pero en realidad no sabia que había este tipo de comandos. Quizás es por el hecho de que recién he empezado un curso de macros en excel 2007 pero en todo caso su uso no me resulta tan complicado de entender. ¿Te animarías a dar una respuesta?
En realidad funciona como un bucle. Cuando termina de hacer las instrucciones con una celda, el Go To 1 le manda comenzar de muevo después de cambiar a la celda inmediatamente inferior. En caso de que la celda esté vacía, se salta toda la 2ª instrucción If y se va directamente al MsgBox "FINAL".
En Visual Basic hay muchos caminos para hacer lo mismo, aunque salvo que lo hagas para practicar, yo te recomiendo siempre que puedas utilizar una fórmula. Suele ser más fácil y no requiere evento de activación.
Saludos. (No te olvides puntuar y cerrar, que ya tengo varias abiertas y la gente se olvida)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas