Problemas al utilizar la funcion Lookup

4 envíos / 0 nuevos
Último envío
Jose Luis Casla...
Imagen de Jose Luis Casla Araiz
Offline
última acción: Hace 1 año 2 meses
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntos
alta: 11/05/2012 - 15:15
Puntos: 1785
Problemas al utilizar la funcion Lookup

Tnego una tabla de datos de dos columnas, en la primera, Columna A tengo los numeros de codigo postal de las localidades, en la segunda Columna B, tengo el nombre de las localidades, algo asi, como 28045 Madrid, 18000 Granada, etc

A esa tabla que contiene como 350 lineas, le llamo Codigos.

Por otro lado tengo un programa que captura el numero del codigo que interesa buscar y lo pone en una variable que le llamo nCodigo definido como Long... Dim nCodigo as Long. Lo defino como Long porque tengo codigos que superan el limite de 64000...

Quiero que el programa, al entrar el nCodigo que sea , por ejemplo, 34015 me ponga en la celda activa, Palencia que es la que corresponde.

Para ello echo mano de la funcion Lookup con esta sintaxis.

        ActiveCell.FormulaR1C1 = "=LOOKUP(nCodigo,Codigos)"

Me da error el error #¿NOMBRE?... y no consigo arreglar la situacion.

Si en lugar de poner nCodigo en la  linea anterior, pongo directamente 34015, entonces si me pone en la celda Palencia, pero como digo, no funciona con la variable nCodigo, que a mi entender deberia ser igual que poner el numero directamente.

Al final, de lo que se trata es de que dado el numero del codigo postal, me devuelva el nombre de la localidad a la que corresponde, pero eso si, pasando por almacenar previamente el numero del codigo a buscar, en una variable.

Quizas estoy utilizando mal esa funcion...

Una vez mas, buscando ayuda...

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 1 semana 2 días
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
Re: Problemas al utilizar la funcion Lookup

estás mezclando una variable que tienes definida en tu código VBA con un argumento de una función en la hoja de cálculo.

te da el error Nombre porque la función no sabe qué es eso de nCodigo (no lo busca en dentro del código), tienes que sustituirlo por su valor.

En cambio Codigos es un nombre de rango, eso sí puede ser el argumento de la función, la función interpreta referencias a celdas y un nombre de rango es en definitiva una referencia a unas celdas.

prueba con lo siguiente

 ActiveCell.FormulaR1C1 = "=LOOKUP(" & nCodigo & ",Codigos)"

esto compone una cadena donde se utiliza el valor de la variable, no su nombre 

 

------
Ya sé Excel, pero necesito más.

Cron
Imagen de Cron
Offline
última acción: Hace 9 meses 18 horas
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntos
alta: 23/06/2010 - 12:30
Puntos: 12735
Re: Problemas al utilizar la funcion Lookup

Sin tener nada que ver con el problema que tienes, me gustaría apuntar que en realidad la correspondencia entre códigos postales y provincias se corresponde con las dos primeras cifras de los códigos postales. Quizás ahorrarías memoria si seleccionas únicamente las dos primeras cifras y eso lo comparas con la tabla de códigos postales que vaya solo por provincias.

 

por ejemplo, 28 es Madrid, 37 es Salamanca, etc.

 

 

Saludos

Jose Luis Casla...
Imagen de Jose Luis Casla Araiz
Offline
última acción: Hace 1 año 2 meses
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntos
alta: 11/05/2012 - 15:15
Puntos: 1785
Re: Problemas al utilizar la funcion Lookup

Hola Cron:

Gracias por tu aporte. Lo que ocurre es que la tabla en cuestion no contiene solo codigos de las provincias españolas, sino otros muchos mas, por lo que me veo obligado a comparar los 5 digitos.

Pero gracias de todos modos. La funcion Lookup esta funcionando actualmente como deseaba.