Como modificar el color de las filas de un libro de excel mediante un formulario de vba?

Dios los continué bendiciendo

Tengo un libro de excel con dos formularios "agregar" y "buscar"

Tengo un formulario que me busca productos de un libro de excel

Estos productos son ingresados por otro formulario (agregar) a la hoja del libro, si uno de estos productos no tiene orden la fila se pone de color rojo... Si tiene orden no...

El formulario que me da problemas (buscar), hace lo siguiente busca estos productos mediante un numero de CONTAINER. Esto lo hace bien.

Esto es lo que quiero! Que si al buscar un producto mediante su numero de contenedor y este no tenga numero de orden y, yo le ingrese un numero de orden, la fila donde este escrito en excel se ponga de color blanco a mas bien de color normal...

Como puedo hacer esto

Saludos desde: Dominican Republic

Quiero que al poner una orden y presione el boton cambiar se cambie de todo de color normal

interior.colorindex=2

2 Respuestas

Respuesta
1

H o l a:

Te anexo el código. Ajusta en la macro lo siguiente:

CommandButton1, por el nombre de tu botón

TextBox1, por el nombre del textbox del container

TextBox2, por el nombre del textbox del número de orden

"conta", por el nombre de la hoja

Private Sub CommandButton1_Click()
'Por.Dante Amor
    If TextBox1 = "" Then
        MsgBox "Debes capturar un número de Container", vbCritical
        TextBox1.SetFocus
        Exit Sub
    End If
    If TextBox2 = "" Then
        MsgBox "Debes capturar un número de orden", vbCritical
        TextBox2.SetFocus
        Exit Sub
    End If
    '
    Set h = Sheets("Conta")
    Set b = h.Columns("A").Find(TextBox1, lookat:=xlWhole)
    If Not b Is Nothing Then
        If IsNumeric(TextBox2) Then valor = Val(TextBox2) Else valor = TextBox2
        h.Cells(b.Row, "B") = valor
        h.Rows(b.Row).Interior.ColorIndex = xlNone
        MsgBox "Número de orden actualizado", vbInformation
    Else
        MsgBox "El número de contenedor no existe", vbExclamation
        TextBox1.SetFocus
    End If
End Sub

':)
':)

Private Sub BUSCAR_Click()
If container = "" Then
MsgBox "escriba un numero de contenedor existente", vbCritical
container.SetFocus
End If
Set b = Range("a:a").Find(container, lookat:=xlWhole)
If Not b Is Nothing Then
orden = Cells(b.Row, "b")
quantity = Cells(b.Row, "C")
dozen = Cells(b.Row, "D")
style = Cells(b.Row, "E")
ph = Cells(b.Row, "F")
color = Cells(b.Row, "G")
size = Cells(b.Row, "H")
section = Cells(b.Row, "I")
coordinator = Cells(b.Row, "J")
hora = Format(Cells(b.Row, "K"), "hh:mm:ss AM/PM")
fecha = Cells(b.Row, "L")
comment = Cells(b.Row, "M")
End If
If b Is Nothing Then
MsgBox "container " & [container] & " no registrado"
End If
container.SetFocus
End Sub

Private Sub cambiar_Click()
MsgBox "seguro que desea cambiar los datos de este contenedor"

Set b = Range("A:A").Find(container, lookat:=xlWhole)
If Not b Is Nothing Then
Cells(b.Row, "b") = orden
Cells(b.Row, "C") = quantity
Cells(b.Row, "D") = dozen
Cells(b.Row, "E") = style
Cells(b.Row, "F") =ph
Cells(b.Row, "G") = color
Cells(b.Row, "H") = size
Cells(b.Row, "I") = section
Cells(b.Row, "J") = coordinator
Cells(b.Row, "K") = hora
Cells(b.Row, "L") = fecha
Cells(b.Row, "M") = comment
End If
'CONTAINER NO ENCONTRADO
If b Is Nothing Then
MsgBox "container " & [container] & " no registrado"
End If
Container.SetFocus
End Sub

esto es lo que yo uso en estos dos botones..

no quiero parecer tonto pero no se como hacer lo que me pides intento y me da error 

Lo que solicitaste fue esto:

"

Quiero que al poner una orden y presione el boton cambiar se cambie de todo de color normal

"

Entonces supongo que quieres ayuda en el botón "cambiar"

Prueba con lo siguiente:

Private Sub cambiar_Click()
'Act.Por.Dante Amor
    MsgBox "seguro que desea cambiar los datos de este contenedor"
    Set b = Range("A:A").Find(Container, lookat:=xlWhole)
    If Not b Is Nothing Then
        Cells(b.Row, "B") = orden
        Cells(b.Row, "C") = quantity
        Cells(b.Row, "D") = dozen
        Cells(b.Row, "E") = Style
        Cells(b.Row, "F") = ph
        Cells(b.Row, "G") = Color
        Cells(b.Row, "H") = Size
        Cells(b.Row, "I") = section
        Cells(b.Row, "J") = coordinator
        Cells(b.Row, "K") = hora
        Cells(b.Row, "L") = fecha
        Cells(b.Row, "M") = Comment
        Rows(b.Row).Interior.ColorIndex = xlNone
    Else
        'CONTAINER NO ENCONTRADO
        MsgBox "container " & [Container] & " no registrado"
    End If
    Container.SetFocus
End Sub

Lo que hace la macro es quitar el color a la fila.

Prueba y me comentas.

Si necesitas ayuda con el botón "Busca", deberás crear una nueva pregunta, explicando con detalle lo que necesitas.


':)
':)

¡Gracias! sabia que era algo simple

había hecho algo parecido en el botón que pone los contenedores sin ordenes de color rojos.

apropósito estamos en fiesta de independencia estos días por aquí por la RD.

saludos.

Respuesta
2

Se debe leer el valor del rango donde la Orden esté vacía y si está vacía al momento de escribir el valor en la orden ejecutar la instruccion para que la fila cambie de color.

¿Podrías mostrarme el código del formulario para que te indique donde hacer el ajuste?

O si gustas compártemelo y te explico donde estuvo el cambio.

RaduNordenhulk

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas