Error al copiar una función en distintas celdas

Tengo esta función, cuyos cálculos son correctos.

El problema que tengo es que si la copio en varias celdas a la vez queda como K(MAL) del ejemplo.Los datos que se repiten con los que están subrayados.

Si copio la función celda a celda todo es correcto K(BIEN)

Tengo aproximadamente 39.000 filas que calcular.

A que es debido que salga mal.

Gracias

La función la llamo en la columna K5

C K(MAL) K(BIEN)

fila 5 01/12/1914 191,74 191,74

fila 6 01/03/1920 190,79 190,79
fila 7 01/05/1921 190,79 190,60
fila 8 01/09/1921 190,79 190,41
fila 9 01/09/1921 190,79 191,74
fila 10 01/11/1921 190,79 190,41
fila 11 01/11/1921 190,79 190,41
fila 12 01/01/1922 190,79 190,41
fila 13 01/03/1922 190,79 190,41
fila 14 01/05/1922 190,79 190,22

Function CALCULO(FING As Date)
COLUMNA = ActiveCell.Column
FILA = ActiveCell.Row
If Year(Cells(FILA, 3)) <= 2008 Then
EDAD_INCREMENTO = 2008 - Year(Cells(FILA, 2))
Else
EDAD_INCREMENTO = Year(Cells(FILA, 3)) - Year(Cells(FILA, 2))
End If
Set Busca = Sheets("DATOS").Range("B:B").Find(EDAD_INCREMENTO, LookIn:=xlValues)
If Not Busca Is Nothing Then
HHH = Busca.Row
Set R = Sheets("DATOS").Range("G:G")
INCREMENTO = R.Cells(HHH, 1) 'INCREMENTO
Else
'MsgBox "No se encontró el dato buscado"
End If
Set Busca = Nothing 'se libera la variable
EDAD_RECIBO = Cells(4, COLUMNA) - Year(Cells(FILA, 2))
Set Busca = Sheets("DATOS").Range("B:B").Find(EDAD_RECIBO, LookIn:=xlValues)
If Not Busca Is Nothing Then
HHH = Busca.Row
Set R = Sheets("DATOS").Range("C:C")
CUOTA = R.Cells(HHH, 1) 'CUOTA
Else
'MsgBox "No se encontró el dato buscado"
End If
Set Busca = Nothing 'se libera la variable
If Val(Cells(4, COLUMNA)) = 2013 Then
CUOTA = CUOTA + (CUOTA * Cells(3, COLUMNA))
CUOTA = CUOTA * 12
CUOTA = CUOTA * ((INCREMENTO) ^ (Cells(4, COLUMNA) - 2005))
CUOTA = Round(CUOTA, 2)
Else
CUOTA = CUOTA * 12
CUOTA = CUOTA * ((INCREMENTO) ^ (Cells(4, COLUMNA) - 2004))
CUOTA = Round(CUOTA, 2)
End If
CALCULO = CUOTA
End Function

1 respuesta

Respuesta
1

Cambia en la función, estas líneas

Function CALCULO(FING As Date)
COLUMNA = ActiveCell.Column
FILA = ActiveCell.Row

Por estas

Function CALCULO(FING As Range)
COLUMNA = ActiveCell.Column
FILA = FING.Row

Realiza la prueba copiando en varias celdas, si te funciona, copia en todas las 39000.

He cambiado las lineas y sale el siguiente error:

error de compilación

calificador no valido

¿Revisaste bien las líneas?

Yo no tengo ese problema.

Puedes enviarme tu archivo

Mi correo [email protected]
En el asunto escribe tu clave de usuario y el título de esta pregunta.

te he remitido el fichero el día 27/11/2012

Gracias

Ya te regresé el archivo a tu mail, en la macro no pusiste esta instrucción
Function CALCULO(FING As Range)
Ya la cambié en la macro, revisa que debe decir Range, tenías Date, desde el primer envío te dije que debía ser Range, luego te dije que revisaras las líneas.
No crees que es regaño, sólo es una observación.
Con este cambio, ya puedes copiar por bloque y se actualizar correctamente los valores.
Saludos. Dam

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas