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.

Preguntas similare

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
Respuesta Responder a este mensaje
#2 Khan
30/01/2007 - 23:41 | Informe spam
Buenas de nuevo,

mañana por la mañana lo pruebo (es un tema de un report de trabajo) y
te digo que tal. Por cierto, que quieren decir los "RC"? Es que no me
suenan de nada y asi aprendo un poquito en vez de copiar sin mas.

Mil gracias y un saludo,

Khan.
Respuesta Responder a este mensaje
#3 KL
31/01/2007 - 01:21 | Informe spam
Hola Khan,

RC es la otra forma de expresar las referencias de rangos dentro de las
formulas usando la notacion R1C1 (habitualmente usamos la notacion A1),
donde R significa ROW y C significa COLUMN (en castellano F1C1 o L1C1,
FILA/COLUMNA o LINEA/COLUMNA). De hecho, esta notacion la utiliza por
defecto la grabadora de macros a la hora de grabar las formulas (lo puedes
probar intreoduciendo una formula en una celda mientras grabas un macro).
Para mas informacion revisa la Ayuda de Excel usando las palabras clave
"referencias rangos".

Saludos,
KL


"Khan" wrote in message
news:
Buenas de nuevo,

mañana por la mañana lo pruebo (es un tema de un report de trabajo) y
te digo que tal. Por cierto, que quieren decir los "RC"? Es que no me
suenan de nada y asi aprendo un poquito en vez de copiar sin mas.

Mil gracias y un saludo,

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