Suma en excel condicionada a celdas itinerantes

Quisiera una macro que sumase en columna "C" empezando en "C5" los ingresos de cantidades que iran siendo introducidas en celdas de las columnas "G", "I", "K", "M", "O", "Q", "S", "U", "W". Así por ejemplo:

En "C5" totalizaría la suma de las celdas de la fila "5" que estuvieran rellenas correspondientes a dichas columnas

En "C6" totalizaría la suma de las celdas de la fila "6" que estuvieran rellenas correspondientes a dichas columnas.

     "A"                 "B"                     "C"          "D"       "E"        "F"        "G"       "H"       "I"        "J"

Respuesta
1

Jose Luis, ¿no te vale con una fórmula en la columna C?

De todas formas si lo que necesitas es código, aquí lo tienes:

Sub sumar()
'Por Marcial Castro'
For f = 5 To Range("G" & Rows.Count).End(xlUp).Row
    Cells(f, 3) = Application.WorksheetFunction.Sum(Range("G" & f), Range("I" & f), Range("K" & f), Range("M" & f), _
    Range("O" & f), Range("Q" & f), Range("S" & f), Range("U" & f), Range("W" & f))
Next
End Sub

Si te ha valido la respuesta.

¡Gracias! Está bien formulado el código y funciona aunque después me dí cuenta que lo que realmente quería era otra cosa consistente en que en la columna "C" figurase la diferencia entre la fecha hoy() y la última celda introducida de esa sucesión de celdas en las filas pues no iban a ser cantidades sino fechas. Imagina que voy introduciendo fechas en esas celdas y me interesa saber el nº de días transcurridos entre la fecha presente y la última fecha introducida.

Siempre que tengas alguna fecha, este código te vale:

Sub sumar()
'Por Marcial Castro
For f = 5 To Range("G" & Rows.Count).End(xlUp).Row
   fecha = Cells(f, Cells(f, Cells.Columns.Count).End(xlToLeft).Column)
   Cells(f, 3) = Application.WorksheetFunction.Days(Now(), fecha)
Next
End Sub

2 respuestas más de otros expertos

Respuesta
1

como estás, ampliando la respuesta anterior en el link http://www.programarexcel.com/2014/10/como-utilizar-worksheetfunction-sum-o.html 

Encontrarás una explicación y ejemplo de como sumar.

Respuesta
1

Revisa lo siguiente, cada que captures una fecha en la columna C, te va a aparecer la diferencia en días entre la fecha capturada y el día de hoy, pero en la columna "D"

Private Sub Worksheet_Change(ByVal Target As Range)
'Por.Dante Amor
    If Not Intersect(Target, Range("C:C")) Is Nothing Then
        If Target.Count > 1 Then Exit Sub
        If IsDate(Target) Then
            If Date >= Target Then
                Cells(Target.Row, "D") = Date - Target
            End If
        End If
    End If
End Sub

Prueba y me comentas

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas