Introducir formulas

14/05/2007 - 18:16 por Oscar Katsinis | Informe spam
Hola grupo : quisiera saber como hago para introducir en vba una formula
para sumar rangos variables.

ej. sé que los datos a sumar por columna comienzan en B10 pero el final
puede variar de un mes a otro.

Gracias

Preguntas similare

Leer las respuestas

#1 Norman Jones
14/05/2007 - 19:09 | Informe spam
Hola Oscar,

'-
quisiera saber como hago para introducir en vba una formula
para sumar rangos variables.

ej. sé que los datos a sumar por columna comienzan en B10 pero el final
puede variar de un mes a otro.
'-

Prueba:

'=>>
Public Sub aTester()
Dim WB As Workbook
Dim SH As Worksheet
Dim Rng As Range
Dim iRow As Long

Set WB = Workbooks("ABC.xls") '<< CAMBIAR
Set SH = WB.Sheets("Hoja1") '<< CAMBIAR

With SH
iRow = LastRow(SH, SH.Columns("B:B"))
Set Rng = .Range("B10:B" & iRow)
End With

MsgBox Rng.Address(0, 0, External:=True)

End Sub

'>
Function LastRow(SH As Worksheet, _
Optional Rng As Range)
If Rng Is Nothing Then
Set Rng = SH.Cells
End If

On Error Resume Next
LastRow = Rng.Find(What:="*", _
after:=Rng.Cells(1), _
Lookat:=xlPart, _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious, _
MatchCase:=False).Row
On Error GoTo 0
End Function
'<<


Regards,
Norman
Microsoft Excel MVP
Respuesta Responder a este mensaje
#2 Oscar Katsinis
14/05/2007 - 21:20 | Informe spam
ok.Muchas gracias.

"Norman Jones" escribió en el mensaje
news:#
Hola Oscar,

'-
quisiera saber como hago para introducir en vba una formula
para sumar rangos variables.

ej. sé que los datos a sumar por columna comienzan en B10 pero el final
puede variar de un mes a otro.
'-

Prueba:

'=>>
Public Sub aTester()
Dim WB As Workbook
Dim SH As Worksheet
Dim Rng As Range
Dim iRow As Long

Set WB = Workbooks("ABC.xls") '<< CAMBIAR
Set SH = WB.Sheets("Hoja1") '<< CAMBIAR

With SH
iRow = LastRow(SH, SH.Columns("B:B"))
Set Rng = .Range("B10:B" & iRow)
End With

MsgBox Rng.Address(0, 0, External:=True)

End Sub

'>
Function LastRow(SH As Worksheet, _
Optional Rng As Range)
If Rng Is Nothing Then
Set Rng = SH.Cells
End If

On Error Resume Next
LastRow = Rng.Find(What:="*", _
after:=Rng.Cells(1), _
Lookat:=xlPart, _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious, _
MatchCase:=False).Row
On Error GoTo 0
End Function
'<<>


Regards,
Norman
Microsoft Excel MVP


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