Jump to content

Vencimiento con Condición


Recommended Posts

Buenos dias amigos.

Quisiera que se marcara con un relleno de celda en rojo, las celdas de la columna D que la fecha de pedido sea mayor a 15 dias y siempre y cuando en la columna E no esta vacia ( si esta vacia porque no se ha recibido el pedido) , si se ha recibido el pedido ( la celda de la columna E no esta vacia) no tiene que tener ningun relleno en la columna  D

Vencimiento.xlsx

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


  • Posts

    • Hola a todos y gracias por vuestra ayuda de antemano. Me he encontrado con un problema que no sé muy bien como resolver, espero que alguien me pueda hechar una mano, porque ya le he dado mil vueltas y estoy atascado, la verdad. Gracias.     Sub buscar() 'Caso 1, compara fila por fila en el rango C1:C100 'Si en una fila encuentra el valor 1 y además el CheckBox1 está marcado escribe ok en F1 'Pero esta condición solo se ejecuta si el CheckBox1 está activado 'Si quiero recorrer todo el rango y escribir ok en cada acierto: 'Worksheets("Hoja1").Range("f" & i).Value = "ok" Dim i As Integer For i = 1 To 100 If Worksheets("Hoja1").Range("c" & i).Value = 1 _ And Worksheets("Hoja1").CheckBox1.Value = True Then Worksheets("Hoja1").Range("f1").Value = "ok" End If Next i End Sub Sub buscar2() 'Caso 2, compara todos los Checkbox con en el rango C1:C100 'Ejemplo caso 1: si Ai = 1 y CheckBoxi = True entonces se escribe ok en Fi 'Ejemplo caso 2: si A1 y A3 = 1 y CheckBox1 y CheckBox3 = True entonces se escribe ok en G14 'El problema en el caso 1 es que no puedo asignarle i al nombre del CheckBox 'Y en el caso 2 tampoco sé como crear las distintas combinaciones entre cada una de las filas 'comprendidas en el rango C1:C100 con sus respectivos CheckBox 'sin escribir un millón de if 'Problema 1 con el caso 1 Dim i As Integer For i = 1 To 100 If Worksheets("Hoja1").Range("c" & i).Value = 1 _ And Worksheets("Hoja1").CheckBox(i).Value = True Then Worksheets("Hoja1").Range("f" & i).Value = "ok" End If Next i 'Problema 2 con el caso 2 If Worksheets("Hoja1").Range("c1").Value = 1 _ And Worksheets("Hoja1").CheckBox1.Value = True _ And Worksheets("Hoja1").Range("c2").Value = 1 _ And Worksheets("Hoja1").CheckBox2.Value = True Then Worksheets("Hoja1").Range("G14").Value = "ok" End If If Worksheets("Hoja1").Range("c1").Value = 1 _ And Worksheets("Hoja1").CheckBox1.Value = True _ And Worksheets("Hoja1").Range("c3").Value = 1 _ And Worksheets("Hoja1").CheckBox3.Value = True Then Worksheets("Hoja1").Range("G14").Value = "ok" End If 'CheckBox1 + CheckBox50, CheckBox14 + CheckBox25, CheckBox1 + CheckBox1 + CheckBox2 + CheckBox3 + CheckBox15 + CheckBox50 ....etc End Sub   demo.xlsm
    • Buenos días compañeros, @JSDJSD Estoy utilizando la solución que me prestaste en la empresa y me solucionaste la vida a parte de estar super contento, y he añadido muchas cosas más. Ahora me encuentro con otro problemilla que me gustaría añadir y no sé como implementarlo en tu codigo. Necesito que en el textbox se obligue a añadir un mínimo de 8 caracteres y un maximo de 17 y si no es correcto que se termine la macro. No sé si me explico. He intentado añadir este código pero creo que no sé implementarlo correctamente ya que pongas lo que pongas me salta que tengo que poner 8 caracteres mínimo.   If Val(TextBox1) < 8 Or Val(TextBox1) > 17 Then MsgBox "Rango invalido. Mínimo 8 caracteres. Gracias." Exit Sub End If   No sé si me podrías ayudar de nuevo. Gracias
    • Te he reestructurado un poco él código. Ya comentarás si quieres los combos ordenados y que se añada de forma automática al elegir de la lista. LLAVES.xlsm
    • Hola @gacg1310! Adjunto 2 opciones, la primera usando la función BUSCARV y una columna auxiliar; y la segunda usando funciones matriciales (se ingresan presionando Ctrl + Shift + Enter). La búsqueda la hice en base al número de cédula, ya que los datos de los nombres no son adecuados; para que sirvan, el nombre de cada persona debe escribirse igual en ambas tablas ("ANSELMO SALAMANCA MARTINEZ" no es lo mismo que "ANSELMO MARTINEZSALAMANCA"). Saludos! datos a traer.xlsx
    • Private Sub Worksheet_Change(ByVal Target As Range) With Target If .Column = 3 Then ' Si la celda cambiada petenece a la coluna 3 = "C", entramos ... Application.EnableEvents = False 'Desactivo eventos porque voy hacer cambios en las celdas .Offset(, -1) = Format(Now, "hh:mm") 'Ponemos la hora en la celda, una celda a la Izq, de la celda modificada ' que si estamos en "C" ==> "B" If Len(.Text) = 0 Then .Offset(, -1) = "" ' Evaluo : Sí En la celda cambiada no hay nada, elimino ' lo que hay en la celda una a la Izq Application.EnableEvents = True 'Activamos eventos End If End With End Sub Te dejo el código comentado para que el próximo cambio te lo puedas apañar tú. Saludos
  • Recently Browsing

    No registered users viewing this page.

×
×
  • Create New...

Important Information

Privacy Policy