Jump to content
victor2012

Recorrer columna y realizar suma con macro

Recommended Posts

Buenos días

 

Amigos del foro, de nuevo recurro a sus conocimiento. Estoy tratando de realizar la suma de valores en una columna determinada, la cuestión es que  hay una columna en blanco entre cada grupo de valores. Lo que estoy intentando es que sume la primera parte de valores y luego siga con el siguiente.

 

image.thumb.png.79dd2cdd7d6eabea3085e8d6aa5f5019.png

 

anexo una imagen y el archivo ejemplo

 

muchas gracias por su amable atencion

 

Un saludo 

Victor2012

Libro2.zip

Edited by victor2012

Share this post


Link to post
Share on other sites

Qué tal @victor2012.

Te dejo una solución con macros. Debes tener en cuenta:

  • Da igual el número de filas que tengas
  • Los valores de "Tipo Trns IVA" (R1, R2, etc) deben estar en orden colocados (primero R1, segundo R2, etc.)
  • Da igual que se salten números de R, pero deben seguir en orden (Ej. R1, R2, R4, R6...)
  • Como no sé qué cantidad de R hay o usas, en la macro está puesto hasta 100. Si son menos, cambia ese valor en la macro y será más ágil
For i = 1 To 100 ---> cambia el 100 por los R que uses

Míra y comenta ;)

Libro2.xlsm

Share this post


Link to post
Share on other sites

Te dejo otra alternativa

 

Sub sumando()
Range("A65000").End(xlUp).Offset(2) = "Fin"
Range("B2").Select
Do While ActiveCell.Offset(0, -1) <> "Fin"

        If ActiveCell = "" Then
           ActiveCell.Offset(1, 0).Select
Else
        ini = ActiveCell.Row
         Selection.End(xlDown).Select
         Fin = ActiveCell.Row
         ActiveCell.Offset(1, 0).Select
         ActiveCell.Formula = "=sum(R" & ini & "c:R" & Fin & "c)"
        ActiveCell.Offset(1, 0).Select
   End If
Loop
End Sub

 

Share this post


Link to post
Share on other sites

Hola

Prueba con este código::

Dim Suma As Double
Dim Uf As Long
Dim I As Integer


With Hoja1
    Uf = .Range("A" & Rows.Count).End(xlUp).Row + 1
    Suma = 0


        For I = 2 To Uf

            Suma = Suma + .Cells(I, 3)
            
            If .Cells(I, 1) = "" Then
                .Cells(I, 3) = CDbl(Suma)
                .Cells(I, 3).Font.Bold = True
                Suma = 0
            End If
             
    
        Next I
        
End With

 

Share this post


Link to post
Share on other sites

Un ligero cambio :

Dim Suma As Double
Dim Uf As Long
Dim I As Integer


With Hoja1
    Uf = .Range("A" & Rows.Count).End(xlUp).Row + 1
    Suma = 0

'Codigo para limpiar el calculo anterior
    For I = 2 To Uf
    
        If .Cells(I, 1) = "" Then
        
            .Cells(I, 3) = ""
        
        End If
    
    Next

'Codigo para calcular
        For I = 2 To Uf

            Suma = Suma + .Cells(I, 3)
            
            If .Cells(I, 1) = "" Then
                .Cells(I, 3) = CDbl(Suma)
                .Cells(I, 3).Font.Bold = True
                Suma = 0
            End If
             
    
        Next I
        
End With

 

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

×
×
  • Create New...

Important Information

Privacy Policy

Ayuda Excel - Madrid, Madrid, ES - Valorada por 6254 personas - Aprender Excel - Total: 4.7 / 5