Macro para sumar los valores de las celdas en rango seleccionado

03/08/2014 - 05:57 por perr0L0co | Informe spam
Hola!
Alguien podría ayudarme con esto?
Necesito una macro que sume los valores de las celdas seleccionadas, las cuales puede ser que no sean contiguas.

Algo como esto:

Celda - Valor
A3 - 4
A5 - 3
B8 - 2
C11 - 1

La macro deberá dar el total sea en una celda que uno designe o mediante un mensaje.

Espero que alguien pueda ayudarme con esto.

Desde ya muchas gracias por el apoyo.

Preguntas similare

Leer las respuestas

#6 perr0L0co
04/08/2014 - 23:22 | Informe spam
Gracias Juan,

Te comento que me esta dando un error:

User-defined type not defined

En la siguiente linea:

Dim DataObj As New MSForms.DataObject

Por cierto, uso Excel 2010.

Saludos.



El lunes, 4 de agosto de 2014 15:16:34 UTC-5, Juan Español escribió:
Sabido lo que me cuentas, creo que la mejor soluci�n

es pasar el valor de la suma al Clipboard (portapapeles)

para que as� est� disponible y lo pegues donde quieras.



Y para que sea m�s �til, yo el c�digo final lo pondr�a en una marcro

asociada a una tecla de funci�n y guardada en el libro PERSONAL.XLS

y as� la tendr�as disponible en cualquier libro de excel que abrieses.

Pero de todas maneras no quitar�a el mensaje con el valor de la Suma

por si no quieres pegarlo y s�lo quieres visualizar la Suma.



El c�digo ser�a as�, para un bot�n.

(Si te gusta la idea de meterlo en una macro y no sabes c�mo... pregunta)



El c�digo quedar�a as�...



Private Sub CommandButton2_Click()

Dim MiSuma, resultado As Double

Dim c_sel, c_sum As Integer

Dim rango, celda As Range



If TypeName(Selection) = "Range" Then

c_sel = Selection.Count

c_sum = 0

Set rango = Selection



For Each celda In rango.Cells

If IsNumeric(celda.Value) Then

resultado = Application.WorksheetFunction.Sum(resultado, celda.Value)

c_sum = c_sum + 1

End If

Next celda

MiSuma = resultado

If MiSuma Then

MsgBox "Las celdas seleccionadas suman: " & MiSuma & Chr(10) & _

c_sel & " celdas seleccionadas." & Chr(10) & c_sum & " celdas sumadas."

Dim DataObj As New MSForms.DataObject

DataObj.SetText MiSuma

DataObj.PutInClipboard

End If

End If

End Sub





Su uso ser�a:

1� Seleccionas celdas

2� Le das al bot�n

3� Te muestra el mensaje con la Suma

el num. de celdas seleccionadas

el num. de celdas sumadas

4� Si necesitas pegar la Suma en cualquier sitio, pulsas Ctrl + V



Saludos.-

P.S.

Si contestas a este mensaje por favor indica q versi�n de Excel utilizas.



"perr0L0co" <> escribi� en el mensaje de noticias

news:...

La idea es esta:

Con regular frecuencia reviso registros numericos de gastos y a veces al

momento de estar analizando los numeros necesito sumar dos o mas celdas para

verificar si el resultado es apropiado a lo que estoy esperando, a veces

puede necesitar la suma simplemente como dato informativo pero otras veces

podr�a necesitar ese valor para otro uso y es ah� donde necesitaria que la

macro me de la opci�n de guardar el resultado en alguna celda que yo elija

en ese momento.



Gracias por el codigo, mi pregunta, puedo dar la opci�n de decidir en que

celda guardar el valor? Esto es porque no siempre uso el mismo reporte y es

obvio que mientras para un reporte la celda que yo ponga en el codigo sea

correcta no lo sera para otros reportes donde esa misma celda este ocupada

por otro dato importante.



Se me habia ocurrido hacerlo a traves de un refedit usando un userform pero

mi problema ahi radica en que no encuentro como pasar mi resultado al

userform.



Gracias por el tiempo!!



Saludos.
Respuesta Responder a este mensaje
#7 Juan Español
05/08/2014 - 00:01 | Informe spam
Casi seguro que te falta una Referencia en VBAProject
concretamente puede ser Microsoft Forms 2.0 Object Library

Alt + F11
Herramientas
Referencias

Buscar esa referencia y picarla para que esté disponible.

"perr0L0co" escribió en el mensaje de noticias
news:
Gracias Juan,

Te comento que me esta dando un error:

User-defined type not defined

En la siguiente linea:

Dim DataObj As New MSForms.DataObject

Por cierto, uso Excel 2010.

Saludos.



El lunes, 4 de agosto de 2014 15:16:34 UTC-5, Juan Español escribió:
Sabido lo que me cuentas, creo que la mejor soluci�n

es pasar el valor de la suma al Clipboard (portapapeles)

para que as� est� disponible y lo pegues donde quieras.



Y para que sea m�s �til, yo el c�digo final lo pondr�a en una marcro

asociada a una tecla de funci�n y guardada en el libro PERSONAL.XLS

y as� la tendr�as disponible en cualquier libro de excel que abrieses.

Pero de todas maneras no quitar�a el mensaje con el valor de la Suma

por si no quieres pegarlo y s�lo quieres visualizar la Suma.



El c�digo ser�a as�, para un bot�n.

(Si te gusta la idea de meterlo en una macro y no sabes c�mo... pregunta)



El c�digo quedar�a as�...



Private Sub CommandButton2_Click()

Dim MiSuma, resultado As Double

Dim c_sel, c_sum As Integer

Dim rango, celda As Range



If TypeName(Selection) = "Range" Then

c_sel = Selection.Count

c_sum = 0

Set rango = Selection



For Each celda In rango.Cells

If IsNumeric(celda.Value) Then

resultado = Application.WorksheetFunction.Sum(resultado, celda.Value)

c_sum = c_sum + 1

End If

Next celda

MiSuma = resultado

If MiSuma Then

MsgBox "Las celdas seleccionadas suman: " & MiSuma & Chr(10) & _

c_sel & " celdas seleccionadas." & Chr(10) & c_sum & " celdas
sumadas."

Dim DataObj As New MSForms.DataObject

DataObj.SetText MiSuma

DataObj.PutInClipboard

End If

End If

End Sub





Su uso ser�a:

1� Seleccionas celdas

2� Le das al bot�n

3� Te muestra el mensaje con la Suma

el num. de celdas seleccionadas

el num. de celdas sumadas

4� Si necesitas pegar la Suma en cualquier sitio, pulsas Ctrl + V



Saludos.-

P.S.

Si contestas a este mensaje por favor indica q versi�n de Excel utilizas.



"perr0L0co" <> escribi� en el mensaje de noticias

news:...

La idea es esta:

Con regular frecuencia reviso registros numericos de gastos y a veces al

momento de estar analizando los numeros necesito sumar dos o mas celdas
para

verificar si el resultado es apropiado a lo que estoy esperando, a veces

puede necesitar la suma simplemente como dato informativo pero otras veces

podr�a necesitar ese valor para otro uso y es ah� donde necesitaria que la

macro me de la opci�n de guardar el resultado en alguna celda que yo elija

en ese momento.



Gracias por el codigo, mi pregunta, puedo dar la opci�n de decidir en que

celda guardar el valor? Esto es porque no siempre uso el mismo reporte y
es

obvio que mientras para un reporte la celda que yo ponga en el codigo sea

correcta no lo sera para otros reportes donde esa misma celda este ocupada

por otro dato importante.



Se me habia ocurrido hacerlo a traves de un refedit usando un userform
pero

mi problema ahi radica en que no encuentro como pasar mi resultado al

userform.



Gracias por el tiempo!!



Saludos.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida