Ayuda macro inserta fila suma rango

Hoa buenos días expertos, tengo el siguiente código:
Sub InsLineas2()
    Dim cellIni$, cellFin$, varSuma
    Range("E2").Select 'Nos posicionamos en la primera fila de valores
    Do
    If IsEmpty(ActiveCell) = False Then
        cellIni = ActiveCell.Address 'Asignamos la celda inicial del rango temporal
        Do
        If ActiveCell.Value = ActiveCell.Offset(1, 0).Value Then
            ActiveCell.Offset(1, 0).Select
        End If
        Loop Until ActiveCell.Value <> ActiveCell.Offset(1, 0).Value
        cellFin = ActiveCell.Address 'Asignamos la celda final del rango temporal
        varSuma = Range(cellIni, cellFin) 'Asignamos el rango a sumar
        ActiveCell.Offset(1, 0).EntireRow.Insert 'Insertamos la línea
        With ActiveCell.Offset(1, 0) 'Efectuamos la suma y le damos un poco de formato a la celda
            .Value = Application.WorksheetFunction.Sum(varSuma)
            .Font.Bold = True
            .Font.Size = 12
        End With
        ActiveCell.Offset(2, 0).Select
    End If
    Loop Until IsEmpty(ActiveCell) = True
End Sub
Lo que hace el código es que inserta filas y suma el rango de esa fila, pero lo que necesito que me ayuden es a que a la hora de suma me sume el rango pero de la columna izquierda, osea la de la columna "D", osea el mismo rango pero de una columna anterior y que me ponga el resultado en esa misma columna.
De antemano muchas gracias.
?

1 respuesta

Respuesta
1
Entonces, solo cambia lo siguiente:
cellIni = ActiveCell.Offset(0, -1).Address
y
cellFin= ActiveCell.Offset(0, -1).Address
Avisame si te funciona y te recomiendo probarlo completamente antes de finalizar la pregunta.
Disculpa, pero no entendí donde debo de cambiar el código, porque no encontré:
cellIni = ActiveCell.Offset(0, -1).Address
Pero creo que no es eso, lo que pasa es que a la hora que "suma", suma con el rango que tiene guardado en el siguiente código:
varSuma = Range(cellIni, cellFin) 'Asignamos el rango a sumar
Pero lo que necesito es que al sumar este rango lo haga en el rango pero de la columna izquierda.
Algo así como crear otra variable llamada cellIni2 y cellFin2 pero con valores de la columna izquierda. Por ejemplo si en las variables esta guardado el rango :
Range(cellIni, cellFin)    Range(E2:E10)
que lo cambie a la celda de la izquierda en "D"
Range(cellIni2, cellFin2)    Range(D2:D10)
para que a la hora de sumar sume la columna de l aizquierda.
varSuma = Range(cellIni2, cellFin2) 'Asignamos el rango a sumar
Algo así...
Tu codigo quedaria asi:
Sub InsLineas2()
    Dim cellIni$, cellFin$, varSuma
    Range("E2").Select 'Nos posicionamos en la primera fila de valores
    Do
    If IsEmpty(ActiveCell) = False Then
        cellIni = ActiveCell.Offset(0, -1).Address 'Asignamos la celda inicial del rango temporal
        Do
        If ActiveCell.Value = ActiveCell.Offset(1, 0).Value Then
            ActiveCell.Offset(1, 0).Select
        End If
        Loop Until ActiveCell.Value <> ActiveCell.Offset(1, 0).Value
        cellFin = ActiveCell.Offset(0, -1).Address 'Asignamos la celda final del rango temporal
        varSuma = Range(cellIni, cellFin) 'Asignamos el rango a sumar
        ActiveCell.Offset(1, 0).EntireRow.Insert 'Insertamos la línea
        With ActiveCell.Offset(1, 0) 'Efectuamos la suma y le damos un poco de formato a la celda
            .Value = Application.WorksheetFunction.Sum(varSuma)
            .Font.Bold = True
            .Font.Size = 12
        End With
        ActiveCell.Offset(2, 0).Select
    End If
    Loop Until IsEmpty(ActiveCell) = True
End Sub
Cualquier duda me dices
Ya casi queda solo que no suma cuando son más de dos filas, ¿por qué?
Te envío el ejemplo de como están a comodadas las filas, en la fila e es cuando separa por grupos de acuerdo la numeración, por ejemplo tiene que separar todo los que tienen numero 18 e insertarle una fila enseguida para que ahí en esa fila se ponga la suma de la fila de "pago", osea que el macro también aparte de insertar la fila tiene que sumar la fila de pago, abusando de tu amabilidad y de tu inteligencia, seria mucho que el macro pusiera en la fila de "salirio" la palabra total.
Así esta :
NOMBRE                                 FALTAS         SALARIO     PAGO         NUME
benito gorgonio                     0                 $416.67     $0.00            18  
fernando lopoez garcia          0                 $250.00     $1,750.00     18  
jorge luis gorgonio                 6                 $250.00     $250.00        18  
guadalupe baez                     6                 $416.67     $416.67        26  
alberto baez fulano                6                  $333.33     $333.33        26  
albino hernandez ju               6                 $283.33     $283.33         1  
jose luis gomez                      6                 $500.00     $0.00            10  
luis martinez sanchez            6                 $233.33    $233.33         10  
felipe perez mora                   6                 $300.00     $300.00         3  
tereso salomon ja                  6                $666.67    $666.67          4  
isidro vargas melchor             6                 $450.00    $450.00          4
asi deberia de quedar:
NOMBRE                                 FALTAS         SALARIO     PAGO         NUME
benito gorgonio                     0                 $416.67     $0.00            18  
fernando lopoez garcia          0                 $250.00     $1,750.00     18  
jorge luis gorgonio                 6                 $250.00     $250.00        18  
                                                                    TOTAL      $2000.00
 guadalupe baez                     6                 $416.67     $416.67        26  
alberto baez fulano                6                  $333.33     $333.33        26
                                                                    TOTAL   $ 750.00
albino hernandez ju               6                 $283.33     $283.33         1
                                                                      TOTAL   $ 283.33
jose luis gomez 6 $500.00 $0.00 10
luis martinez sanchez 6 $233.33 $233.33 10
                                                                    TOTAL     $233.33
felipe perez mora                   6                 $300.00     $300.00         3
                                                                  TOTAL     $300.00
tereso salomon ja                  6                $666.67    $666.67          4  
isidro vargas melchor             6                 $450.00    $450.00          4
                                                                    TOTAL     $1116.67
Espero sea posible.
Ok, el siguiente código debe hacer lo que necesitas:
Sub InsLineas3()
    Dim cellIni$, cellFin$, varSuma
    Range("E2").Select 'Nos posicionamos en la primera fila de valores
    Do
    If IsEmpty(ActiveCell) = False Then
        cellIni = ActiveCell.Offset(0, -1).Address 'Asignamos la celda inicial del rango temporal
        Do
        If ActiveCell.Value = ActiveCell.Offset(1, 0).Value Then
            ActiveCell.Offset(1, 0).Select
        End If
        Loop Until ActiveCell.Value <> ActiveCell.Offset(1, 0).Value
        cellFin = ActiveCell.Offset(0, -1).Address 'Asignamos la celda final del rango temporal
        varSuma = Range(cellIni, cellFin) 'Asignamos el rango a sumar
        ActiveCell.Offset(1, 0).EntireRow.Insert 'Insertamos la línea
        With ActiveCell.Offset(1, -1) 'Efectuamos la suma y le damos un poco de formato a la celda
            .Value = Application.WorksheetFunction.Sum(varSuma)
            .Font.Bold = True
            .Font.Size = 12
            .NumberFormat = "_($* #,##0.00_);_($* (#,##0.00);_($* ""0.00""_);_(@_)"
        End With
        With ActiveCell.Offset(1, -2)
            .Value = "TOTAL"
            .Font.Bold = True
            .Font.Size = 12
        End With
        ActiveCell.Offset(1, -2).Value = "TOTAL"
        ActiveCell.Offset(2, 0).Select
    End If
    Loop Until IsEmpty(ActiveCell) = True
End Sub
Quedo muy bonito, ya inserta el TOTAL y todo... pero no suma. No se si lo as probado, pero no suma.
De hecho antes de enviar una respuesta siempre lo pruebo.
A mi si me suma.
¿Dices qué no te suma nada?
¿Has copiado el código tal cual?
Te puedo eniar el archivo aun correo para que me ayudes, es que no suma. Ya lo copie tal cual.
Si inserta las filas, pone la palabra TOTAL y hasta con formato y to, pero no suma.
Envialo a [email protected]
ya t eenvie el mail, dice archivo. mi correo es [email protected]
Solo me llego un libro, y en ese libro no esta el código.
Modifique el libro y lo mande a tu correo, checalo.
Excelente, muy bien, ya vi porque ami no me sumaba, lo que pasaba es que el formato de las celdas yo las tenia en MONEDA, pero con formato de NUMERO funciona super bien... muchas gracias, me funciona muy bien, y te pido una disculpa por decir que no sumaba.
Gracias, esta frutifantastico.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas