El visual basic for applications no lo utilizo mucho, pero quizás te ayude lo siguiente:
Buscarv
Esta función nos permite buscar un valor en una primera columna de una matriz, una vez localizado nos muestra dentro de la misma fila el valor que contiene la columna que deseamos obtener.
Estructura: BUSCARV(Valor que se desea buscar en la matriz; Matriz de datos donde buscar datos; Columna que se desea obtener dato; Ordenado)
Excel busca en la primera columna de la matriz, definida en el segundo argumento, de forma vertical el valor que ponemos en el primer argumento. Normalmente esta búsqueda Excel la hace pensando que esta primera columna está ordenada. Si los valores no lo estuvieran tenemos que indicárselo para que pueda encontrar el dato. Si la tabla no está ordenada deberemos escribir Falso en el argumento que hemos llamado Ordenado.
Ejemplo: Vamos a crear una pequeña hoja en la que según el código de un artículo nos devuelva la descripción de este dependiendo de una lista. Para ello primero de todo necesitaremos una tabla de valores. Imaginemos que la introducimos a partir de la celda A5 donde escribiremos el primer código, por ejemplo X-1. En la celda B5 la descripción: Coches. En la celda A6 escribiremos X-2 y en la B6: Camiones... y así todos los valores que queramos.
Lo que desearemos es que el usuario de esta hoja introduzca un código en la celda A1 y automáticamente en la celda A2 aparezca la descripción que depende del código. Para ello solamente tendremos que escribir la función siguiente en la celda A2. =BUSCARV(A1;A5:B8;2;FALSO)
Explicaremos detenidamente los argumentos de esta función para terminar de entender el funcionamiento. En esta función buscamos el valor de la celda A1, dentro de la matriz A5:B8, recuerda que Excel busca primero por la primera columna. Como resultado nos mostrará lo que encuentre en la segunda columna de la fila del valor encontrado.
Buscar
Esta función realiza lo mismo que la función anterior, pero con la diferencia que busca los valores en la primera fila de la matriz de forma horizontal y nos devuelve un valor que está dentro de la misma columna del valor encontrado.
Estructura: BUSCAR(Valor que se desea buscar en la matriz; Matriz de datos donde buscar datos; Fila que se desea obtener dato; Ordenado)
Ejemplo: Podemos utilizar el mismo caso que el anterior, simplemente que los códigos que vamos a utilizar deberán estar distribuidos en columnas y las descripciones en la siguiente fila. Así de esta forma podemos utilizar la siguiente función: =BUSCARH(A1;A5:D6;2;FALSO)
http://www.forosdelweb.com/showthread.php?t=437838