Recorrer base de datos EXCEL

28/06/2004 - 14:05 por Lorenzo | Informe spam
Buenas tardes a tod@s.

Antes de nada, necesito codigo de programacion, no formulas Gracias.

Necesito un medio rapido para recorrer una serie de celdas organizadas en
columnas para buscar un valor en la celda de la izquierda y asignar el valor
de su celda de la derecha a una determinada celda de la hoja. Os pongo un
ejemplo un poco mas grafico, pues me explico como un libro cerrado.

Aplicacion de base de datos basica. Hoja adicional con listado de codigos
postales. A la hora de introducir un registro nuevo (fila) al poner el
codigo postal quiero que me complete los datos de localidad y provincia
automaticamente. Tengo una hoja adicional (Cod. Postales) con los
correspondientes codigos postales. Uso el metodo "Change" para determinar un
cambio en la columna donde estan los codigos postales de la base de datos.
Necesito que cuando se lanze el evento mediante codigo recorrer la tabla de
cod. postales y completar las celdas de loc. y provincia automaticamente.

Se os ocurre algo ????

P.D. Cada dia ire incrementando la base de datos de codigos postales, por lo
que necesito que el rango de consulta de los codigos sea dinamico.

Gracias a todos por vuestra ayuda.-

Lorenzo / Malaga / España

Preguntas similare

Leer las respuestas

#1 Henry Sanchez
28/06/2004 - 14:34 | Informe spam
Hola Lorenzo,

Prueba el uso de For Each para recorrer la columna con
los Datos (Previamente debes haber nombrado esta columna,
puedes ponerle por ejemplo Codigos).
Adapta el siguiente codigo:

Dim varCelda As Variant
For Each varCelda in Codigos
If varCelda.Value=Codigo Then
DeterminadaCelda.Item(1,2).Value = varCelda.Item
(1,2).Value
DeterminadaCelda.Item(1,3).Value = varCelda.Item
(1,3).Value
Exit For
End If
Next varCelda

Otra posibilidad es que uses el metodo Find:
DeterminadaCelda.Item(1,2).Value = Range("Codigos").Find
(What:=Codigo, LookIn:=xlValues, Lookat:=xlWhole).Item(1,
2).Value

Aunque personalmente he tenido problemas con el uso de
este ultimo metodo cuando el texto a buscar (en este caso
codigo) es extenso.

Saludos,

Henry
Buenas tardes a

Antes de nada, necesito codigo de programacion, no


formulas Gracias.

Necesito un medio rapido para recorrer una serie de


celdas organizadas en
columnas para buscar un valor en la celda de la


izquierda y asignar el valor
de su celda de la derecha a una determinada celda de la


hoja. Os pongo un
ejemplo un poco mas grafico, pues me explico como un


libro cerrado.

Aplicacion de base de datos basica. Hoja adicional con


listado de codigos
postales. A la hora de introducir un registro nuevo


(fila) al poner el
codigo postal quiero que me complete los datos de


localidad y provincia
automaticamente. Tengo una hoja adicional (Cod.


Postales) con los
correspondientes codigos postales. Uso el


metodo "Change" para determinar un
cambio en la columna donde estan los codigos postales de


la base de datos.
Necesito que cuando se lanze el evento mediante codigo


recorrer la tabla de
cod. postales y completar las celdas de loc. y provincia


automaticamente.

Se os ocurre algo ????

P.D. Cada dia ire incrementando la base de datos de


codigos postales, por lo
que necesito que el rango de consulta de los codigos sea


dinamico.

Gracias a todos por vuestra ayuda.-

Lorenzo / Malaga / España


.

Respuesta Responder a este mensaje
#2 Lorenzo
28/06/2004 - 16:22 | Informe spam
Gracias por tu respuesta Henry ...

Me puedes explicar como he de nombrar la columna ?? Supongo que con los
nombres, ¿no?.

Hay alguna forma de hacer que los nombres sean dinamicos ?? es decir, que
pueda seguir introduciendo valores conforme tengo mas codigos y el contenido
del nombre se adapte ??

Gracias.-

"Henry Sanchez" escribió en el mensaje
news:2251001c45d0c$49e85490$
Hola Lorenzo,

Prueba el uso de For Each para recorrer la columna con
los Datos (Previamente debes haber nombrado esta columna,
puedes ponerle por ejemplo Codigos).
Adapta el siguiente codigo:

Dim varCelda As Variant
For Each varCelda in Codigos
If varCelda.Value=Codigo Then
DeterminadaCelda.Item(1,2).Value = varCelda.Item
(1,2).Value
DeterminadaCelda.Item(1,3).Value = varCelda.Item
(1,3).Value
Exit For
End If
Next varCelda

Otra posibilidad es que uses el metodo Find:
DeterminadaCelda.Item(1,2).Value = Range("Codigos").Find
(What:=Codigo, LookIn:=xlValues, Lookat:=xlWhole).Item(1,
2).Value

Aunque personalmente he tenido problemas con el uso de
este ultimo metodo cuando el texto a buscar (en este caso
codigo) es extenso.

Saludos,

Henry
Buenas tardes a

Antes de nada, necesito codigo de programacion, no


formulas Gracias.

Necesito un medio rapido para recorrer una serie de


celdas organizadas en
columnas para buscar un valor en la celda de la


izquierda y asignar el valor
de su celda de la derecha a una determinada celda de la


hoja. Os pongo un
ejemplo un poco mas grafico, pues me explico como un


libro cerrado.

Aplicacion de base de datos basica. Hoja adicional con


listado de codigos
postales. A la hora de introducir un registro nuevo


(fila) al poner el
codigo postal quiero que me complete los datos de


localidad y provincia
automaticamente. Tengo una hoja adicional (Cod.


Postales) con los
correspondientes codigos postales. Uso el


metodo "Change" para determinar un
cambio en la columna donde estan los codigos postales de


la base de datos.
Necesito que cuando se lanze el evento mediante codigo


recorrer la tabla de
cod. postales y completar las celdas de loc. y provincia


automaticamente.

Se os ocurre algo ????

P.D. Cada dia ire incrementando la base de datos de


codigos postales, por lo
que necesito que el rango de consulta de los codigos sea


dinamico.

Gracias a todos por vuestra ayuda.-

Lorenzo / Malaga / España


.

Respuesta Responder a este mensaje
#3 Henry Sanchez
28/06/2004 - 21:35 | Informe spam
Hola Lorenzo,
Al lado izquierdo de la barra de formulas se encuentra el
cuadro de nombres, hay es donde se nombran los rangos,
simplemente tienes que seleccionarlo y luego colocas el
nombre dentro de este cuadro de texto.
Si insertas lineas en un rango, este se adapta a la nueva
dimension del rango, eso es automatico.

Saludos,

Henry
Gracias por tu respuesta Henry ...

Me puedes explicar como he de nombrar la columna ??


Supongo que con los
nombres, ¿no?.

Hay alguna forma de hacer que los nombres sean


dinamicos ?? es decir, que
pueda seguir introduciendo valores conforme tengo mas


codigos y el contenido
del nombre se adapte ??

Gracias.-

"Henry Sanchez"


escribió en el mensaje
news:2251001c45d0c$49e85490$
Hola Lorenzo,

Prueba el uso de For Each para recorrer la columna con
los Datos (Previamente debes haber nombrado esta columna,
puedes ponerle por ejemplo Codigos).
Adapta el siguiente codigo:

Dim varCelda As Variant
For Each varCelda in Codigos
If varCelda.Value=Codigo Then
DeterminadaCelda.Item(1,2).Value = varCelda.Item
(1,2).Value
DeterminadaCelda.Item(1,3).Value = varCelda.Item
(1,3).Value
Exit For
End If
Next varCelda

Otra posibilidad es que uses el metodo Find:
DeterminadaCelda.Item(1,2).Value = Range("Codigos").Find
(What:=Codigo, LookIn:=xlValues, Lookat:=xlWhole).Item(1,
2).Value

Aunque personalmente he tenido problemas con el uso de
este ultimo metodo cuando el texto a buscar (en este caso
codigo) es extenso.

Saludos,

Henry
Buenas tardes a

Antes de nada, necesito codigo de programacion, no


formulas Gracias.

Necesito un medio rapido para recorrer una serie de


celdas organizadas en
columnas para buscar un valor en la celda de la


izquierda y asignar el valor
de su celda de la derecha a una determinada celda de la


hoja. Os pongo un
ejemplo un poco mas grafico, pues me explico como un


libro cerrado.

Aplicacion de base de datos basica. Hoja adicional con


listado de codigos
postales. A la hora de introducir un registro nuevo


(fila) al poner el
codigo postal quiero que me complete los datos de


localidad y provincia
automaticamente. Tengo una hoja adicional (Cod.


Postales) con los
correspondientes codigos postales. Uso el


metodo "Change" para determinar un
cambio en la columna donde estan los codigos postales de


la base de datos.
Necesito que cuando se lanze el evento mediante codigo


recorrer la tabla de
cod. postales y completar las celdas de loc. y provincia


automaticamente.

Se os ocurre algo ????

P.D. Cada dia ire incrementando la base de datos de


codigos postales, por lo
que necesito que el rango de consulta de los codigos sea


dinamico.

Gracias a todos por vuestra ayuda.-

Lorenzo / Malaga / España


.





.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida