Necesito una macro

Hola necesito una macro que compare una fecha con otra y me coloque en otra celda el numero de días que faltan para esto.
Pero que sean aproximanademnete 10 fechas diferentes en 10 celdas diferentes
Respuesta
1
ActiveWorkbook.ActiveSheet.Cells(i, "c") = DateDiff("d", ActiveWorkbook.ActiveSheet.Cells(i, "a"), ActiveWorkbook.ActiveSheet.Cells(i, "b"))
Hola:
Esta línea asigna en la columna C los días que le falta a A para llegar a B. La variable i, indica la fila que estás utilizando.
Oye pero por decirlo si tengo una macro así:
Sub aviso()
Range("H1").Select
actual = ActiveCell.Value
Range("D2").Select
While ActiveCell.Value <> ""
registro = ActiveCell.Value
distancia = registro - actual
ActiveWorkbook.ActiveSheet.Cells(i, "c") = DateDiff("d", ActiveWorkbook.ActiveSheet.Cells(i, "a"), ActiveWorkbook.ActiveSheet.Cells(i, "b"))
MsgBox ("Quedan " & distancia & " días por transcurrir")
ActiveCell.Offset(1, 0).Select
Wend
End Sub
no puedo agregar lo que me cuentas o si???
¿Me puedes ayudar?
Aquí te envío el código corregido.
DateDiff("d", actual, registro), es la función que te calcula la diferencia entre ambas fechas (registro-actual). La "d" indica que la diferencia se hace en días.
Saludos.
Sub aviso()
    Range("H1").Select
    actual = ActiveCell.Value
    Range("D2").Select
    While ActiveCell.Value <> ""
        registro = ActiveCell.Value
        distancia = DateDiff("d", actual, registro)
        MsgBox ("Quedan " & distancia & " días por transcurrir")
        ActiveCell.Offset(1, 0).Select
    Wend
End Sub
Si función muy bien¡
¿Pero si quiero que en lugar de que me lo apunte en un cuadro de mensaje(MsjBox) le de 10 fechas y le de 10 fechas para comparar me apunte los días en celdas consecutivas? ¿Qué arreglo le tengo que hacer a este programa?
Sub aviso()
    Range("H1").Select
    actual = ActiveCell.Value
    Range("D2").Select
    While ActiveCell.Value <> ""
        registro = ActiveCell.Value
        distancia = DateDiff("d", actual, registro)
        MsgBox ("Quedan " & distancia & " días por transcurrir")
        ActiveCell.Offset(1, 0).Select
    Wend
End Sub
Los cambis están en negrita
Sub aviso()
    Range("H1").Select
    actual = ActiveCell.Value
    Range("D2").Select
    While ActiveCell.Value <> ""
        registro = ActiveCell.Value
        distancia = DateDiff("d", actual, registro)
        ActiveCell.Offset(0, 1).Select 'Te cambias a la celda de al lado
        ActiveCell.Value=distancia 'Escribes la celda
        ActiveCell. Offset(1, -1). Select 'Vuelves a la columna y avanzas una fila
    Wend
End Sub
Gracias.
La verdad eres un experto super buena onda con mucha paciencia
Dejame probar mi programa
Y te comento¡
Gracias por tu ayuda

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas