Combinar celdas en base a celdas previamente combinadas y ejecutar una sumatoria

Tengo una base donde se combinan celdas en base a la necesidad del contenido, por ejemplo la primera columna cumple el propósito de enumerar (COLUMNA A), y esta contiene diferentes variaciones de combinación de filas (es decir, algunas contienen 2 filas, 3 filas, 4 filas, etc).

Lo que se necesita es que, en la columna P, a través de una macro, se combinen exactamente la mismas filas que se encuentran combinadas en la columna A, y que una vez se encuentren combinas ejecuten una sumatoria de las celdas de la columna M

De ser necesario puedo remitir el archivo para mejor entendimiento

1 respuesta

Respuesta
1

Quieres sumar las celdas de la columna M, ¿pero en dónde quieres el resultado de la suma?

Puedes poner 2 imágenes, mostrando en la primera imagen cómo están tus datos y en la segunda imagen cómo quieres el resultado.

Hola dante, antes de nada agradezco tu respuesta.

En la Primera imagen puedes observar que la Columna "No.", agrupa un número variable de celdas, lo que necesito y requiero tu ayuda, es que en la columna de "ALICUOTA TOTAL%", se combinen exactamente las mismas filas que están en la columna "No.", y una vez combinada, realice una sumatoria de los campos de las filas que le corresponderían de la columna "ALÍCUOTA PARCIAL%"

La segunda imagen sería el resultado final.

Finalmente que ese proceso se repita en todas las celdas hasta el final de la numeración.

Si consideras necesario, te remito el archivo de excel.

Gracias nuevamente

Te anexo la macro

Sub Combinar_Celdas()
'Por Dante Amor
'
    Application.ScreenUpdating = False
    fila = 2    'fila inicial de datos
    col1 = "A"  'columna de No.
    col2 = "M"  'columna de ALÍCUOTA PARCIAL%
    col3 = "P"  'columna de ALICUOTA TOTAL%
    '
    u = Range(col1 & Rows.Count).End(xlUp).Row
    Range(col3 & fila & ":P" & u).UnMerge
    Range(col3 & fila & ":P" & u).Value = ""
    '
    For i = fila To u
        wtot = 0
        If Cells(i, col1).MergeCells Then
            ini = Cells(i, col1).MergeArea.Cells(1, 1).Row
            fin = ini + Cells(i, col1).MergeArea.Rows.Count - 1
            For j = ini To fin
                wtot = wtot + Cells(j, col2).Value
            Next
            With Range(Cells(ini, col3), Cells(fin, col3))
                .MergeCells = True
                .HorizontalAlignment = xlCenter
                .VerticalAlignment = xlCenter
            End With
            i = i + Cells(i, col1).MergeArea.Rows.Count - 1
        Else
            ini = i
            wtot = Cells(ini, col2).Value
        End If
        Cells(ini, col3) = wtot
    Next
    Application.ScreenUpdating = True
    MsgBox "Fin combinar celdas"
End Sub

'.[Sal u dos. Dante Amor. No olvides valorar la respuesta. 
'.[Avísame cualquier duda

.

'

[

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas