Problema con sumatorio por Visual

30/01/2007 - 22:06 por Khan | Informe spam
Buenas noches,

tengo un problemilla con el Excel, a ver si alguno me podria echar un
cable. Necesito sumar una tabla que esta en cada hoja de un libro en
una hoja nueva. Para ir haciendo la suma, utilizo una variable de
contador que va pasando de fila en fila de la tabla, la sintaxis es
esta:

iFila = 6

Do While iFila < 23

ActiveSheet.Cells(iFila, 2).Formula = "=SUM('" & Desde & ":" &
Hasta & "'!I" & iFila & ")"
ActiveSheet.Cells(iFila, 3).Formula = "=SUM('" & Desde & ":" &
Hasta & "'!J" & iFila & ")"
ActiveSheet.Cells(iFila, 4).Formula = "=SUM('" & Desde & ":" &
Hasta & "'!K" & iFila & ")"
ActiveSheet.Cells(iFila, 5).Formula = "=SUM('" & Desde & ":" &
Hasta & "'!L" & iFila & ")"
ActiveSheet.Cells(iFila, 7).Formula = "=SUM('" & Desde & ":" &
Hasta & "'!N" & iFila & ")"
ActiveSheet.Cells(iFila, 8).Formula = "=SUM('" & Desde & ":" &
Hasta & "'!O" & iFila & ")"
ActiveSheet.Range("I" & iFila).Value = "=H" & iFila & "/C" & iFila
& ""
ActiveSheet.Range("I" & iFila).NumberFormat = "##0.00 %"
ActiveSheet.Cells(iFila, 10).Formula = "=SUM('" & Desde & ":" &
Hasta & "'!Q" & iFila & ")"
ActiveSheet.Range("K" & iFila).Value = "=H" & iFila & "/J" & iFila
& ""

iFila = iFila + 1

Loop

Abajo de todo hago un calculate para que recalcule los sumatorios y
quede todo correcto. El nombre de la primera y de la ultima hoja se
introducen en un form y se asignan a las variables Desde y Hasta. Cada
hoja representa un dia, su nombre es dd-mm-aa.

El codigo funciona perfectamente mientras el rango tenga el primer
digito igual, es decir, si pido que sume del 1 al 9 o del 10 al 19, no
problem; pero si pido que sume del 5 al 15 el resultado de la formula
que meto arriba se cambia solo y pasa a ser algo asi:

=SUMA('05-01-07:[15-01-07]15-01-07'!I6)

Es decir, la segunda fecha se mete entre corchetes y luego la pone
otra vez. Si hago el sumatorio a mano (seleccionando el rango con el
mouse), sale la misma formula del codigo pero sin el corchete, y
funciona perfectamente.

Alguien puede echarme una mano?

Mil gracias.

Khan.
 

Leer las respuestas

#1 KL
30/01/2007 - 23:02 | Informe spam
Hola Khan,

A mi el siguiente codigo me funciona muy bien y sin necesidad de recurrir a
bucles:

Sub test()
Dim lngFilaIni As Long, lngFilaFin As Long
Dim strDesde As String, strHasta As String

strDesde = "05-01-07": strHasta = "05-01-07"
lngFilaIni = 6: lngFilaFin = 23

With ActiveSheet
.Range(.Cells(lngFilaIni, 2), .Cells(lngFilaFin, 8)) = _
"=SUM('" & strDesde & ":" & strHasta & "'!RC[7])"
With .Range(.Cells(lngFilaIni, 9), .Cells(lngFilaFin, 9))
.Value = "=RC[-1]/RC[-6]"
.NumberFormat = "##0.00 %"
End With
.Range(.Cells(lngFilaIni, 10), .Cells(lngFilaFin, 10)) = _
"=SUM('" & strDesde & ":" & strHasta & "'!RC[7])"
.Range(.Cells(lngFilaIni, 11), .Cells(lngFilaFin, 11)) = _
"=RC[-3]/RC[-1]"
End With
End Sub

Saludos,
KL

Preguntas similares