Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Macro para sumar valores de columna rango variable

9,635 views
Skip to first unread message

titopose

unread,
Jul 9, 2012, 5:54:51 PM7/9/12
to
Hola amigos:
Quisiera agregar una macro (para un bot�n que la ejecute) que sume las
celdas de la columna de la celda activa, desde la fila 6 hasta la fila
inmediatamente arriba de la celda activa (las 5 primeras filas son de
t�tulos).
La celda que ser� la activa es variable.
C�mo ser�a el c�digo?
Saludos y muchas gracias.
Tito

Pedro F. Pardo

unread,
Jul 10, 2012, 4:47:33 AM7/10/12
to
Normalmente el Atajo de teclado: Alt + = hace esto automáticamente.
Si los títulos de las 5 primeras filas contienen números y a veces Excel se confunde y los suma, entonces puedes probar la siguiente macro.

Sub suma_especial()
'
columna = ActiveCell.Column
ultima_fila = ActiveCell.Row - 1
letra_columna = Mid(ActiveCell.Address, 2, 1)
ActiveCell.Formula = "=SUMA(" & letra_columna & "6:" & letra_columna & ultima_fila & ")"

End Sub

Está hecha así en plan rápido :-( solo funciona en las primeras columnas de la A a la Z

Si piensas que es lo que quieres y quieres refinarla para que funcione siempre házmelo saber ;-) pero creo que con el Atajo de teclado de Alt + = podría bastar, ¿no?


Saludos,

Pedro

titopose

unread,
Jul 10, 2012, 2:13:30 PM7/10/12
to
Pedro F. Pardo escribió el 10/07/2012 10:47 :
> El lunes, 9 de julio de 2012 22:54:51 UTC+1, titopose escribió:
>> Hola amigos:
>> Quisiera agregar una macro (para un botᅵn que la ejecute)
>> que sume las
>> celdas de la columna de la celda activa, desde la fila 6 hasta la fila
>> inmediatamente arriba de la celda activa (las 5 primeras filas son de
>> tᅵtulos).
>> La celda que serᅵ la activa es variable.
>> Cᅵmo serᅵa el
>> cᅵdigo?
>> Saludos y muchas gracias.
>> Tito
>>
>>
>>
> Normalmente el Atajo de teclado: Alt + = hace esto automáticamente.
> Si los títulos de las 5 primeras filas contienen números y a
> veces Excel se confunde y los suma, entonces puedes probar la siguiente macro.
>
> Sub suma_especial()
> '
> columna = ActiveCell.Column
> ultima_fila = ActiveCell.Row - 1
> letra_columna = Mid(ActiveCell.Address, 2, 1)
> ActiveCell.Formula = "=SUMA(" & letra_columna &
> "6:" & letra_columna & ultima_fila & ")"
>
> End Sub
>
> Está hecha así en plan rápido :-( solo funciona en las
> primeras columnas de la A a la Z
>
> Si piensas que es lo que quieres y quieres refinarla para que funcione siempre
> házmelo saber ;-) pero creo que con el Atajo de teclado de Alt + =
> podría bastar, ¿no?
>
>
> Saludos,
>
> Pedro
>
Hola Pedro
El atajo sirve, pero hace la selección hasta la primer celda
vacía.
El código que me adjuntaste funciona bien!
Como repetí la pregunta en el foro de excel, recibí otra respuesta
de jarmoncada, que también funciona.
Muchas gracias!
Tito

jarmoncada

unread,
Jul 12, 2012, 3:55:27 PM7/12/12
to
Creo que esto ya lo habia puesto es un foro anterior... Pero por si las dudas, lo pongo nuevamente...

Sub SumarValores()

Dim fila As Integer
Dim columna As Integer
Dim rango As Range
Dim suma As Long

fila = ActiveCell.Row
columna = ActiveCell.Column

Set rango = Range(Cells(6, columna), Cells(fila - 1, columna))
suma = Application.WorksheetFunction.Sum(rango)

ActiveCell.Value = suma

End Sub

titopose

unread,
Jul 12, 2012, 6:06:18 PM7/12/12
to
Efectivamente ya me habías contestado. Por desconocimiento puse la
pregunta dos veces, Gracias a ambos por la ayuda!
Salutos,
Tito
0 new messages