problema con visual basic en excel
Publicado por nebpmp (3 intervenciones) el 01/12/2010 09:05:07
Hola a todos, tengo un problema con el excel. He creado una función muy sencilla en visual basic (ya que mis conocimientos sobre él son limitados). El código es el siguiente:
Function correccion(medida, fila, columna, maxfila)
cierre = False
While cierre = False And fila <= maxfila
If medida > Cells(fila, columna) Then
fila = fila + 1
Else
If medida = Cells(fila, columna) Then
correccion = Cells(fila, columna + 1)
cierre = True
Else
correccion = (Cells(fila, columna + 1) * (medida - Cells(fila - 1, columna)) + Cells(fila - 1, columna + 1) * (Cells(fila, columna) - medida)) / (Cells(fila, columna) - Cells(fila - 1, columna))
cierre = True
End If
End If
Wend
End Function
Básicamente lo que hace es, dependiendo del valor "medida", de unas tablas hace una interpolación para sacar el valor deseado. La función va perfecta, con un pero. Los argumentos "fila, columna y maxfila" los meto directamente en la función, pero "medida" es una celda que está vinculada con otra celda de otra hoja, que a su vez es una fórmula de promedio de otras.
El problema es que el resultado no aparece automáticamente tal y como está(tengo que seleccionar la celda que contiene la función, clicar en la barra de fórmulas y pulsar intro) , sin embargo si cambio la celda del argumento "medida" y en vez de estar vinculada a la celda mencionada antes le introduzco un número cualquiera si que se actualiza automáticamente.
Espero haberme explicado bién.
Un saludo y gracias.
Function correccion(medida, fila, columna, maxfila)
cierre = False
While cierre = False And fila <= maxfila
If medida > Cells(fila, columna) Then
fila = fila + 1
Else
If medida = Cells(fila, columna) Then
correccion = Cells(fila, columna + 1)
cierre = True
Else
correccion = (Cells(fila, columna + 1) * (medida - Cells(fila - 1, columna)) + Cells(fila - 1, columna + 1) * (Cells(fila, columna) - medida)) / (Cells(fila, columna) - Cells(fila - 1, columna))
cierre = True
End If
End If
Wend
End Function
Básicamente lo que hace es, dependiendo del valor "medida", de unas tablas hace una interpolación para sacar el valor deseado. La función va perfecta, con un pero. Los argumentos "fila, columna y maxfila" los meto directamente en la función, pero "medida" es una celda que está vinculada con otra celda de otra hoja, que a su vez es una fórmula de promedio de otras.
El problema es que el resultado no aparece automáticamente tal y como está(tengo que seleccionar la celda que contiene la función, clicar en la barra de fórmulas y pulsar intro) , sin embargo si cambio la celda del argumento "medida" y en vez de estar vinculada a la celda mencionada antes le introduzco un número cualquiera si que se actualiza automáticamente.
Espero haberme explicado bién.
Un saludo y gracias.
Valora esta pregunta
0