Sumar con macro

Hola
Necesito una macro que me sume los datos de una columna y en la primera celda vacía me coloque el total.
Muchas gracias
Carolina

1 Respuesta

Respuesta
1
Me ha costado pero ya te lo he solucionado, lo que hace el código es pedirte primero que le digas que columna quieres sumar (A, B, C...) posteriormente te pedirá cuantas filas desde la activa quieres sumar por ejemplo si estas en la A23 y quieres sumar las 23 filas pondrás 23, si quieres solo 10 comenzando en la activa y subiendo para arriba 10, pues pondrás 10. Espero que te valga, este es el código:
Sub SumarColumnas()
Dim Dame As String
Dim NumFilas As Integer
'Aquí te pedirá que elijas la columna
Dame = InputBox("Dime que Columna quieres sumar", "Sumar Columnas")
Range(Dame & 65536).Select
Selection.End(xlUp).Select
ActiveCell.Offset(1, 0).Select
'Aquí te pedirá que pongas cuantas filas quieres sumar
intFila = Abs(Int(Val(InputBox("Desde la fila?", "Número de fila", "1"))))
strFormula = "=SUM(R[" & "-" & (intFila) & "]C:R[-1]C)"
ActiveCell.FormulaR1C1 = strFormula
End Sub
>Un saludo
>Julio
¿Es posible usar este mismo procedimiento para contar los registro que hay en una columna?
Para contar las filas que tienes en una columna (ojo sin poner ningún criterio, solo contar) la fórmula en la celda donde quieres que te aparezca el dato pones esta fórmula =CONTAR(Aquí pones tu rango, por ej. B15:B38), pero si quieres elegir la fila desde el Inputbox, y desconoces cuantas filas hay hasta la primera la macro esta:
Sub Cuenta_Filas()
Dim Dame As String
'Aquí te pedirá que elijas la columna
Dame = InputBox("Dime que Columna quieres contar", "Contar filas")
Range(Dame & 65536).Select
Selection.End(xlUp).Select
ActiveCell.Offset(1, 0).Select
'Sacamos el nombre de la celda del tipo $A$16
direccion = ActiveCell.Offset(-1, 0).Address
'como tenemos una referencia absoluta, del tipo $A$16
le quitamos el primer signo del $ para que nos quede A$16
direccion = Mid(direccion, 2)
'creamos un vector con 2 elementos que estarán separados por el símbolo
'del $. Uno será la "A" y otro el "16" (suponiendo que estemos en A16)
dato = Split(direccion, "$")
'nos quedamos con el segundo elemento del vector (empieza por cero)
NumFilas = dato(1)
ActiveCell = NumFilas
End Sub
Espero que la entiendas y te sirva para más ocasiones .
>Un saludo
>Julio

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas