Macro para sumar valores de columna rango variable

09/07/2012 - 23:54 por titopose | Informe spam
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

Preguntas similare

Leer las respuestas

#1 Pedro F. Pardo
10/07/2012 - 10:47 | Informe spam
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
Respuesta Responder a este mensaje
#2 titopose
10/07/2012 - 20:13 | Informe spam
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
Respuesta Responder a este mensaje
#3 jarmoncada
12/07/2012 - 21:55 | Informe spam
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
Respuesta Responder a este mensaje
#4 titopose
13/07/2012 - 00:05 | Informe spam
jarmoncada escribió el 12/07/2012 21:55 :
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


Efectivamente ya me habías contestado. Por desconocimiento puse la pregunta dos veces, Gracias a ambos por la ayuda!
Salutos,
Tito
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida