Ver Mensaje Individual
  #7 (permalink)  
Antiguo 30/03/2007, 07:37
Avatar de epa2
epa2
 
Fecha de Ingreso: abril-2002
Ubicación: Málaga
Mensajes: 1.475
Antigüedad: 22 años
Puntos: 9
Re: Excel VBA. ¿como hago para buscar datos de otro libro?

Hola de nuevo, esta mañana seguí peleando con el vba.

mira, en primer lugar el codigo que me pasastes para "pulir" la busqueda
funciona mejor que el primero, ahora el formulario no se me queda pillado,
todo parece indicar que con el primer _Clic al botón encuentra los registros.
Muchas gracias por el cambio de código. en los campos textbox del
formulario me aparecen todos los datos correctamente.

ahora bien, continuando con el proyecto, ¿como pasar los datos de los textbox
a las celdas?.

Estuve probando con lo que indicastes.... de esta forma...

Rem seleccionamos la celda del DNI, atrapamos su valor y lo pasamos al campo
de texto del formulario. Tambien ponemos el valor de la variable en la celda
A2

DNI = RangeDNI.Value
[A2].Formula = DNI

Rem hacemos lo mismo con todos los demas campos, APELLIDO1
APELLIDO1 = RangeDNI.Offset(0, 1)
[B2].Formula = APELLIDO1

Rem APELLIDO2
APELLIDO2 = RangeDNI.Offset(0, 2)
[C2].Formula = APELLIDO2

Rem NOMBRE
NOMBRE = RangeDNI.Offset(0, 3)
[D2].Formula = NOMBRE


sin embargo, este code no me pega los datos en las celdas, siguen vacías...
estuve leyendome la ayuda de VBA y probé a cambiarlo por esto....

Rem seleccionamos la celda del DNI, atrapamos su valor y lo pasamos al campo
de texto del formulario. Tambien ponemos el valor de la variable en la celda
A2

DNI = RangeDNI.Value
Worksheets("formulario").Range("A2").Value = DNI

Rem hacemos lo mismo con todos los demas campos, APELLIDO1
APELLIDO1 = RangeDNI.Offset(0, 1)
Worksheets("formulario").Range("B2").Value = APELLIDO1


Rem APELLIDO2
APELLIDO2 = RangeDNI.Offset(0, 2)
Worksheets("formulario").Range("C2").Value = APELLIDO2


Rem NOMBRE
NOMBRE = RangeDNI.Offset(0, 3)
Worksheets("formulario").Range("D2").Value = NOMBRE

Con esto tambien me daba error, me decía que el subíndiceestaba fuera del
intervalo, y me señala la línea
Worksheets("formulario").Range("A2").Value = DNI

como le he cogido "gustillo" al tema, seguí leyendome la documentación y probé
lo siguiente....

DNI = RangeDNI.Value
Worksheets("formulario").Cells(2, 1).Value = DNI

pero tambien me decía lo mismo del subíndice, como creo que lo tengo a punto
de "caramelo" seguí probando con esta opción..

DNI = RangeDNI.Value
Range("A2").Value = DNI

APELLIDO1 = RangeDNI.Offset(0, 1)
Range("B2").Value = APELLIDO1

APELLIDO2 = RangeDNI.Offset(0, 2)
Range("C2").Value = APELLIDO2

NOMBRE = RangeDNI.Offset(0, 3)
Range("D2").Value = NOMBRE

pero tampoco, y creo que se me escapa algo, a ver si sabes donde me estoy
equivocando...

un saludete.
__________________

***Aprendiz de todo y maestro de nada***