Búsqueda en macros

Hola,
necesito una macro que busque todos los conceptos que se encuentran en la hoja1 columna A en una base de datos que se encuentra en la hoja 2 columna A. Si lo encuentra, la pacro debería devolver en la hoja 1 columna B, fila del concepto a buscar, la información que se encuentra en la hoja2, columna B fila de la palabra buscada.
En caso de no encontrado, debería dar un aviso y añadir la palabra a buscar en la hoja dos columna A abajo de todo.
Seria genial que me pudierais ayudar poraue no se ya como hacerlo.
Muchas gracias
Respuesta
1
Podrías hacer 2 bucles, donde uno recorra el vector origen de los datos y el otro donde lo buscaría seria algo así:
sub buscarv1_en_v2()
dim f1,f2 as long ' variables para recorrer vectores
dim valor as long, valor a buscar
f1=2
do while worksheets("hoja1").cells(f1,1).value<>""
valor=worksheets("hoja1").cells(f1,1).value
f2=2
do while worksheets("hoja2").cells(f2,1).value<>""
 if worksheets("hoja2").cells(f2,1).value= valor then
worksheets("hoja1").cells(f1,2).value=worksheets("hoja2").cells(f2,1).value
else
' aqui meteria el codigo para guardalas que no encontro
end if
f2=f2+1
loop
f1=f1+1
loop
end sub
creoque eso te funciona
Es perfecto! Muchas gracias.
Como debería hacer para guardar en la hoja 2 todos aquellos conceptos no encontrados; es decir, al no encontrar un concepto de la hoja uno, añadirlo al final de la hoja 2.
Muchas gracias por su ayuda, me es de gran utilidad
Un saludo,
sub buscarv1_en_v2()
dim f1,f2, f3 as long ' variables para recorrer vectores
dim valor as long' valor a buscar
'debo recorrer la hoja 2 para hallar el primer espacio libre para colocar los nuevos registros
f3=2
do while worksheets("hoja2").cells(f3,1).value<>""
f3=f3+1
loop
f1=2
do while worksheets("hoja1").cells(f1,1).value<>""
valor=worksheets("hoja1").cells(f1,1).value
f2=2
do while worksheets("hoja2").cells(f2,1).value<>""
 if worksheets("hoja2").cells(f2,1).value= valor then
worksheets("hoja1").cells(f1,2).value=worksheets("hoja2").cells(f2,1).value
else
worksheets("hoja1").cells(f1,2).value="SIN COINCIDENCIA"
worksheets("hoja2").cells(f3,1).value=valor
f3=f3+1
end if
f2=f2+1
loop
f1=f1+1
loop
end sub
espero sea lo que necesitas
recuarda que puntuar es agradecer¡¡¡
La verdad que me hace una cosa muy rara, ¿me lo podrías revisar? Me copia en la hoja dos, todos los elementos que encuentra varias veces!
Gracias
Disculpa tienes razón
, no se en que estaba pensando
sub buscarv1_en_v2()
dim f1,f2, f3 as long ' variables para recorrer vectores
dim valor as long' valor a buscar
dim flag1 as boolean
'debo recorrer la hoja 2 para hallar el primer espacio libre para colocar los nuevos registros
f3=2
do while worksheets("hoja2").cells(f3,1).value<>""
f3=f3+1
loop
f1=2
do while worksheets("hoja1").cells(f1,1).value<>""
valor=worksheets("hoja1").cells(f1,1).value
flag1= false
f2=2
do while worksheets("hoja2").cells(f2,1).value<>""
if worksheets("hoja2").cells(f2,1).value= valor then
worksheets("hoja1").cells(f1,2).value=worksheets("hoja2").cells(f2,1).value
flag1=true
end if
f2=f2+1
loop
if flag1=false then worksheets("hoja2").cells(f3,2).value=worksheets("hoja1").cells(f1,1).value
worksheets("hoja1").cells(f1,2).value= "SIN COINCIDENCIA"
f3=f3+1
end if
f1=f1+1
loop
end sub
Ahora si estoy casi seguro que es lo que necesitas
quedo atento

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas