Macro para poner fecha automática

Necesito una macro que haga que cada vez que cambie el numero de factura me cambie automáticamente la fecha y la sitúe en el ultimo día del mes en curso.

2 Respuestas

Respuesta
2

Pon la siguiente macro en los eventos de tu hoja

Private Sub Worksheet_Change(ByVal Target As Range)
'Por.Dante Amor
    cFactura = "C5"     'Celda de factura
    cFecha = "D3"       'Celda de fecha
    If Not Intersect(Target, Range(cFactura)) Is Nothing Then
        If Target.Count > 1 Then Exit Sub
        dia = Day(DateSerial(Year(Date), Month(Date) + 1, 1) - 1)
        Range(cFecha) = DateSerial(Year(Date), Month(Date), dia)
    End If
End Sub

Lo que hace la macro es, cada que cambias el valor de la celda C5, automáticamente pone la fecha del último día del mes en curso en la celda D3.

Cambia en la macro C5 y D3 por tus celdas.

Sigue las Instrucciones para poner la macro en los eventos de worksheet

  1. Abre tu libro de excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. Del lado izquierdo dice: VBAProject, abajo dale doble click a worksheet(tu hoja)
  4. En el panel del lado derecho copia la macro
'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

¡Gracias!  Lo probare ahora mismo

La he probado y me sale un error que dice : se ha producido el error 424 en tiempo de ejecución.

Se requiere un objeto.

Como lo puedo solucionar.

Gracias

¿Cambiaste algo de la macro?

¿Qué le cambiaste?

solo he cambiado el numero de celda donde va mi numero de factura y el de la fecha.

Pero revisa cómo está mi macro y en base a eso realiza los cambios

O dime cuáles son las celdas y yo hago el cambio

Con tu macro he hecho un copia y pega. Las celdas son la B18 es el numero de factura y la B20 la fecha.

Gracias

Quedaría así:

Private Sub Worksheet_Change(ByVal Target As Range)
'Por.Dante Amor
    cFactura = "B18"     'Celda de factura
    cFecha = "B20"       'Celda de fecha
    If Not Intersect(Target, Range(cFactura)) Is Nothing Then
        If Target.Count > 1 Then Exit Sub
        dia = Day(DateSerial(Year(Date), Month(Date) + 1, 1) - 1)
        Range(cFecha) = DateSerial(Year(Date), Month(Date), dia)
    End If
End Sub

sal u dos

no se que pasa pero copio y pego la macro, le doy a ejecutar y me sale una pantalla para que le ponga el nombre a la macro y la cree.

no soy capaz de hacer que funcione y me aparezca en la lista de macros

No es una macro para ejecutarse con un botón.

La macro se ejecuta automáticamente cuando modificas la celda B18, pero tienes que poner la macro en los eventos de la hoja. Sigue las instrucciones que te puse:

  1. Abre tu libro de excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. Del lado izquierdo dice: VBAProject, abajo dale doble click a worksheet(tu hoja)
  4. En el panel del lado derecho copia la macro

no se pero no consigo que funcione, de todas maneras gracias por las molestias

Si gustas, adapto la macro en tu archivo. Envíame tu archivo

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “carlos López Aranda” y el título de esta pregunta.

Respuesta
1

Es nesesario el Macro.? Puedes Escibir la Funcio =Ahora() o en mi caso uso excel en ingles =NOW(). Y cada que Actualices una celda se modificara Automaticamente..

Ojala te sirva

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas