Agregar a totales mensuales formato de fecha

pregunta para dante agregar a totales mensuales el formato de fecha mar-2015e

1 respuesta

Respuesta
1

Te anexo la macro para los totales, va en el evento de worksheet

Private Sub Worksheet_Change(ByVal Target As Range)
'Por.Dante Amor
    If Not Intersect(Target, Range("B:E")) Is Nothing Then
        If Target.Count > 1 Then Exit Sub
        If Target.Row < 4 Then Exit Sub
        If Cells(Target.Row, "A") = "" Then
            MsgBox "No hay fecha"
            Exit Sub
        End If
        f = Month(Cells(Target.Row, "A")) + 3
        Cells(f, "G") = Format(Cells(Target.Row, "A"), "mmm") & "-" & Year(Date)
        c = Target.Column + 6
        Cells(f, c) = Cells(f, c) + Target.Value
        Cells(f, "K") = Cells(f, "K") + Target.Value
    End If
End Sub

Dante no te olvides de mandarme la explicación en la misma macro gracias

Claro, con gusto:

La macro se ejecuta cuando modificas alguna celda de las columnas:

If Not Intersect(Target, Range("B:E")) Is Nothing Then

Cuando solamente modificaste una celda

If Target.Count > 1 Then Exit Sub

Y que la fila es mayor o igul a la 4

If Target.Row < 4 Then Exit Sub

Ahora, verifica que exista fecha en esa fila que modificaste, Si no hay fecha te envía un mensaje de error y se sale de la macro

If Cells(Target.Row, "A") = "" Then            MsgBox "No hay fecha"            Exit Sub        End If

 Después,  toma el número de mes de la fecha y le suma 3, con esto obtenemos el número de fila, si el mes modificado es 3 (marzo) y le sumamos 3 entonces en la fila 6 del resumen vamos a poner la suma

f = Month(Cells(Target.Row, "A")) + 3

Con lo siguiente escribimos en la columna G y la fila que obtuvimos en el paso anterior el mes guión y el año de la fecha de la columna A: "mar-2015"

Cells(f, "G") = Format(Cells(Target.Row, "A"), "mmm") & "-" & Year(Date)

Al igual que hicimos con la fila, ahora obtenemos la columna, tomamos como referencia, siempre, la celda modificada, entonces según la columna que modificaste le sumamos 6, para de esta forma llegar  a la columna del resumen.

c = Target.Column + 6

Ya tenemos la fila f y la columna c, sólo falta acumular el importe:

        Cells(f, c) = Cells(f, c) + Target.Value        Cells(f, "K") = Cells(f, "K") + Target.Value

El importe se acumula en la fila f y columna c y también se acumula en la columna "K" para llevar el total global.

¡Gracias! Son un fenómeno dante abrazo amigo en lo posible las próximas macros que te pida si no es molestia agrégale la explicación en las mismas así aprendo gracias maestro

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas