Visual Basic para Aplicaciones - Macro para buscar un Numero en una columna

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil
Val: 44
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Macro para buscar un Numero en una columna

Publicado por javier (25 intervenciones) el 08/11/2017 16:36:15
BUENAS TARDEES

SALUDOS CORDIALES
ESPERANDO ME PUEDAN AYUDAR
EN ESTA OCACION TENGO ESTE PEQUEÑO DETALLITO

TENGO UNA MACRO ,
UN BOTON DE BUSQUEDA DE DATOS EN UNA COLUMNA Y CUANDO LO ENCUENTRA
EXTRAE LA FIAL COMPLETA A OTRA HOJA
Y LO HACE A A LA PERFECCION!!!!!

LO QUE NECESITO ES QUE PUEDA BUSCAR NO SOLO UN DATO SI NO TENGA LA POSIBILIDAD DE INGRESAR VARIOS DATOS Y BUSACARLOS

YA QUE EN OCACIONES TENGO QUE BUSCAR HASAT 100 DATOS Y TENGO QUE INGRESAR DATO POR DATO






COMO SIEMPRE ESPERO HABERME EXPLICADO


ESTE ES MI CODIGO

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Private Sub CommandButton1_Click()
 
 
 
filalibre = 1 + Sheets("Hoja1").Cells(Rows.Count, "BF").End(xlUp).Row
Dato = InputBox("Ingrese Numero de Producto")
 
If Dato = "" Then Exit Sub
Set buscado = ActiveSheet.Range("bf1:bf" & Range("bf799479").End(xlUp).Row).Find(Dato, LookIn:=xlValues, LookAt:=xlWhole)
If Not buscado Is Nothing Then
ubica = buscado.Address
 
Do
buscado.EntireRow.Copy Destination:=Sheets("Hoja1").Cells(filalibre, 1)
filalibre = filalibre + 1
Set buscado = ActiveSheet.Range("bf1:bf" & Range("bf799480").End(xlUp).Row).FindNext(buscado)
Loop While Not buscado Is Nothing And buscado.Address <> ubica
 
End If
 
 
MsgBox ("Busqueda Finalizada")
 
 
 
End Sub
PERO ANEXO EL ARCHIVO
GRACIAS POR SU AYUDA
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 1.134
Oro
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Macro para buscar un Numero en una columna

Publicado por Antoni Masana (498 intervenciones) el 09/11/2017 07:47:24
Buenas Javier,

en primer lugar una puntualización sobre las normas no escritas de los foros, escribir en mayúsculas se considera el equivalente a gritar.

En segundo lugar no entiendo nada de tu problema. Presentas una MACRO en un libro vacio y hablas de copiar pero la verdad es que no le veo el sentido a todo esto.

¿Copiar qué?
¿Donde?
¿Por que?
¿Para que?
¿Cual es la finalidad de todo esto?

Quizas es mucho más facíl poner la funcion BUSCARV()

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Private Sub CommandButton1_Click()
    filalibre = 1 + Sheets("Hoja1").Cells(Rows.Count, "BF").End(xlUp).Row
    Dato = InputBox("Ingrese Numero de Producto")
 
    If Dato = "" Then Exit Sub
 
    Set buscado = ActiveSheet.Range("BF1:BF" & Range("BF799479").End(xlUp).Row).Find(Dato, LookIn:=xlValues, LookAt:=xlWhole)
    If Not buscado Is Nothing Then
        ubica = buscado.Address
        Do
            buscado.EntireRow.Copy Destination:=Sheets("Hoja1").Cells(filalibre, 1)
            filalibre = filalibre + 1
            Set buscado = ActiveSheet.Range("bf1:bf" & Range("bf799480").End(xlUp).Row).FindNext(buscado)
        Loop While Not buscado Is Nothing And buscado.Address <> ubica
    End If
    MsgBox ("Busqueda Finalizada")
End Sub

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 44
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Macro para buscar un Numero en una columna

Publicado por javier (25 intervenciones) el 09/11/2017 17:16:06
Buen dia

De antemano entonces ofrezco una disculpa por mi Mayusculas desconocia, Gracias por la recomendación

y aclarando mas mi solicitud

envio un archivo mas"completo" para explicarme mejor

necesito buscar el "Producto" y una vez q encuetre ese Producto copia la fila completa y la pega en la hoja1
y repito lo hace excelente (puedes tomar cualquier numero de producto para ver ejemplo)

mi problema es cuando necesito buscar hasat 400 o "mas" productos tengo que introducir uno por uno y es lo que deseo evitar

espero haber sido un poco mas explicito

Muchas Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 1.134
Oro
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Macro para buscar un Numero en una columna

Publicado por Antoni Masana (498 intervenciones) el 10/11/2017 11:17:46
Te adjunto el fichero con unos cambios.

De la fija 3 hasta la 25 he copiados los códigos y con las fórmulas que hay en las celdas adyacentes te rellena las celdas, el único incombeníente es la columna A que hay solución pero es un poco más compleja.

Pero mi pregunta es ¿Dónde tienes esos 400 códigos? SI están en un fichero solo debes hacer unos pocos cambios en la macro creando una nueva que en lugar de pedirte el código te pida el fichero lo abra y trate cada código,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Private Sub Leer_Fichero_Click()
    filalibre = 1 + Sheets("Hoja1").Cells(Rows.Count, "B").End(xlUp).Row
    File = InputBox("Fichero con los Números de Producto")
 
    If File = ""      Then Exit Sub
    If Dir(File) = "" Then Exit Sub
 
    Open File as For Input as #1
    While not Eof(1)
        Line Input #1, Dato
        Set buscado = ActiveSheet.Range("b1:b" & Range("b799479").End(xlUp).Row).Find(Dato, LookIn:=xlValues, LookAt:=xlWhole)
        If Not buscado Is Nothing Then
           ubica = buscado.Address
           Do
              buscado.EntireRow.Copy Destination:=Sheets("Hoja1").Cells(filalibre, 1)
              filalibre = filalibre + 1
              Set buscado = ActiveSheet.Range("b1:b" & Range("b799480").End(xlUp).Row).FindNext(buscado)
           Loop While Not buscado Is Nothing And buscado.Address <> ubica
       End If
    Wend
    Close #1
    MsgBox ("Busqueda Finalizada")
End Sub

El fichero no incluye esta Macro y no está probada.

Saludos.
\\//_
||*||
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar