Sumar fechas del mes actual que están coloreadas

Sumar los importes del mes actual que están coloreadas y dejar el total en una celda que yo elija

3 respuestas

Respuesta
2

Te anexo la macro, cambia "A" por la columna de fechas y "B" por la columna de importes

Sub sumar1()
'Por.Dante Amor
    col_fecha = "A"
    col_impor = "B"
    '
    On Error Resume Next
    Set celda = Application.InputBox("Selecciona la celda", Default:=Selection.Address, Type:=8)
    If celda Is Nothing Then Exit Sub
    '
    For i = 1 To Range(col_fecha & Rows.Count).End(xlUp).Row
        If IsDate(Cells(1, col_fecha)) Then
            If Month(Cells(i, col_fecha)) = Month(Date) Then
                wtot = wtot + Cells(i, col_impor)
            End If
        End If
    Next
    celda.Value = wtot
End Sub

Avísame cualquier duda

sal  u dos

Respuesta
1

H o l a 

Pero cual columna se sumaran y donde irá el resultado.

Claro los importes están el la columnas E, yo necesito que sume los importe de la columna E que corresponda al mes en curso y que me tire el total en la celda F2 por ejemplo me explico

Aquí va

Sub Sumar()
'Aortiz
   '
    For i = 1 To Range("A" & Rows.Count).End(xlUp).Row
        If IsDate(Cells(1, "A")) Then
            If Month(Cells(i, "A")) = Month(Date) Then
                Total = Total + Cells(i, "E")
            End If
        End If
    Next
    Range("F2").Value = Total
End Sub

Te paso la actualizada COLOREA Y SUMA

Sub Colorear_sumar()
'Act. Aortiz
    For i = 5 To Range("A" & Rows.Count).End(xlUp).Row
        If IsDate(Cells(5, "A")) Then
            If Month(Cells(i, "A")) = Month(Date) Then
                Total = Total + Cells(i, "E")
                Cells(i, "A").Interior.ColorIndex = 6
            Else
                Cells(i, "A").Interior.ColorIndex = xlNone
            End If
        End If
    Next
    Range("F2") = Total
    MsgBox "fin"
End Sub

Valora la respuesta para finalizar saludos!

Respuesta
1

. 10.02.17 #VBA Función suma por color

Buenas, capo

Faltaría saber dónde está la fecha para saber si es de este mes o no. Y ayudaría ver donde están los valores a sumar.

Pero...

Si, eventualmente, lo del mes actual estuviera en un rango continuo, la siguiente función personalizada (UDF), suma aquellas celdas que tengan el mismo color que la celda donde la colocás. No es una macro, funciona como una fórmula standard.

Accede al Editor de VBA (Atajo: Alt + F11), allí inserta un módulo (Insertar-Módulo) y pega el siguiente código:

Function SumaColor(CeldaCol As Range, ElRango As Range)
Application.Volatile True
Dim LaCelda As Range
Dim ElColor As Integer
Dim Resultado
ElColor = CeldaCol.Interior.ColorIndex
For Each LaCelda In ElRango
  If LaCelda.Interior.ColorIndex = ElColor Then
    Resultado = WorksheetFunction.Sum(LaCelda) + Resultado
  End If
Next LaCelda
SumaColor = Resultado
End Function

En la celda que elijas, poné la fórmula sumacolor(<celda actual>;<rango>) y pintala del color que tenés pintadas las celdas en origen.

Por ejemplo:

Fijate si usás comas o punto y coma para separar argumentos de las funciones. Yo usé ";"]

El primer argumento es la celda donde está el color a considerar (en este caso la misma donde está la fórmula) y el segundo es el rango a sumar.

Eso te permitirá usarla para distintos colores.

Coméntame si resuelve lo que necesitás -y, en tal caso, agradeceré que califiques mi contribución- o escribime de nuevo aquí, si necesitas más apoyo con esto.

Un abrazo

Fernando

(Buenos Aires, Argentina)

.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas