Si queremos calcular el VAN en Access podemos hacer dos cosas: o bien utilizamos el generador de expresiones -> Funciones incorporadas -> Financieras -> NPV o bien nos montamos nuestra propia función un tanto más personalizada.
Y si elegimos la segunda opción aquí tenéis un ejemplo que nos calcula el valor actual neto de una inversión, suponiendo unos flujos de caja constantes en el tiempo. Y es personalizada porque la he preparado para poder decidir si el bien objeto de la inversión se va a vender al final por su valor residual o no.
Para aclararnos, y a modo de ejemplo, si yo sé que un proyecto que me costará 100.000 euros y que me dará, durante dos años, unos rendimientos de 55.000 euros para el primer año y 55.000 euros para el segundo, con una tasa de descuento del 5%, la pregunta es: ¿es conveniente esa inversión?
Ya sabemos que si el resultado es positivo en principio "lo ganado" supera a "lo invertido", por lo que sí es conveniente. Si no, pues "palmamos pasta" (ganamos menos de lo que invertimos).
Pues aplicarlo es tan sencillo como:
1.-Crearnos un módulo estándar y en él escribir la siguiente función:
'*------------------------------------------------------------------------------.-
'*---Neckkito @ http://neckkito.siliconproject.com.ar/- ... --------.-
'-------Fecha creación: 01/12/15------------------------------------------------.-
'-------Fecha última modificación: 01/12/15-------------------------------------.-
'*------Función que calcula el Valor Actual Neto (VAN o VNA) de una inversión---.-
'*------suponiendo unos flujos de caja constantes-------------------------------.-
'*------Permite la actualización del valor residual al final del periodo--------.-
'*------------------------------------------------------------------------------.-
Public Function fncVAN( _
valorInversion As Currency, _
tasaDescuento As Double, _
flujoDeCaja As Currency, _
anosInversion As Byte, _
Optional valorResidual As Currency = 0)
Dim i As Byte
Dim valorActualAcumulado As Currency
For i = 1 To anosInversion
valorActualAcumulado = valorActualAcumulado + flujoDeCaja / (1 + tasaDescuento) ^ i
Next i
If valorResidual <> 0 Then
valorActualAcumulado = valorActualAcumulado + valorResidual / (1 + tasaDescuento) ^ anosInversion
End If
fncVAN = Round(valorActualAcumulado - valorInversion, 2)
End Function
2.- Hacer una llamada a la función cumplimentando los argumentos. Siguiendo con el ejemplo, si queremos almacenar el VAN en una variable VanProyecto (de tipo Currency), escribiríamos:
VanProyecto = fncVAN(100000, 0.05, 55000, 2)
Si supuestamente esa inversión consistía en comprar una máquina que, al cabo de dos años, podemos vender por 7000 euros, pues la llamada sería:
VanProyecto = fncVAN(100000, 0.05, 55000, 2, 7000)
Y hasta aquí el tema. El día que me sienta inspirado, y si alguien lo solicita, ya os explicaré cómo calcular el VAN con flujos de caja no constantes...

Espero que os pueda ser de utilidad.
Saludos!