Problema con una macro para realizar búsqueda

Hola, he estado intentando realizar el código para una macro la cual realice lo siguiente:
1.- Llame un archivo(.xls) ubicado en cierta ruta del equipo.
2.- Abrir el archivo y realizar una búsqueda en solo la columna B de un numero que yo ingrese.
3.- Si el valor es encontrado, seleccionar y copiar las siguientes 5 celdas a la derecha y copiarlas.
La intención es que buscando solo un numero (en este caso un folio) pueda pegar el contenido de las siguientes 5 celdas en un nuevo archivo de Excel.
Hasta el momento tengo este código pero ya es un dolor de cabeza ya que todo lo he aprendido de la ayuda y no he logrado hacer más.
Sub Macro1()
Workbooks.Open Filename:="C:\Documents and Settings\Silvia\Escritorio\Libro1.xls"
Dim n As Range
    palabra_a_buscar = InputBox("Escribe el Folio a Buscar", "Search Style")
        Set n = Cells.Find(What:=palabra_a_buscar)          
    If n Is Nothing Then
    MsgBox "Tu folio no ha sido encontrado, por favor verificalo"
    Else
    Range(n.Address).Select
    MsgBox "El Folio se encuentra seleccionado " & UCase(palabra_a_buscar) & "."
    End If
Set n = Nothing
End Sub
Lo que he logrado es que al activar la macro se abra el archivo donde quiero buscar, me pida el valor a buscar pero ya no se como restringir la buqueda a solo la columna B y no todo el libro o la hoja.
De antemano muchas gracias a quien pueda echarme una mano, Saludos.

1 respuesta

1
Respuesta de
Hola omihack, vamos a ver, vamos a empezar desde el principio, te voy a dar una solución a ver si te sirve, de la forma que lo hice yo en mi programa de gestión.
Primero vamos a suponer para hacértelo más fácil que el archivo en el que quieres buscar esta en la la siguiente ubicación.
C:\Documents and Settings\Silvia\Escritorio\
El libro se llama Libro1.xls
Voy a poner la palabra "rem" en cada comentario para que sepas que es una aclaración, ¿ok? Empezamos.
1º. Abrimos un libro nuevo.
2º. Entramos en VBA a través de ALT+F11.
4º. Nos vamos a INSERTAR > USERFORM.
5º. Colocamos 6 textbox y un botón de comando, que se llamará commandButton1
6º. Colocamos otro botón de comando llamado CommandButton2.
Ahora vamos a empezar a programar, hacemos doble Click en el commandButton1 y nos aparece el panel para escribir el código. Entonces empezamos a programar.
Sub CommandButton1_click()
Dim buscar as excel.range
Rem Abrimos el libro donde queremos hacer la búsqueda:
Workbooks.Open Filename:= "C:\Documents and Settings\Silvia\Escritorio\libro1.xls"
Rem Activamos la hoja donde queremos buscar el dato:
Workbooks("libro1.xls").Sheets("hoja1").Activate
Rem Le decimos que nos busque el dato que escribamos en el Textbox1, el cual se encuentra en la columna B.
Set buscar = Workbooks("libro.xls").Sheets("hoja1").Range("b:b").Find (What:=Textbox1,_
                                       LookIn:=xlFormulas, _
                                       LookAt:=xlPart, _
                                       SearchOrder:=xlByRows, _
                                       SearchDirection:=xlNext, _
                                       MatchCase:=False)
Rem Ahora le decimos que si encuentra el dato, nos copie la búsqueda en los textbox correspondientes:  
  If Not buscar Is Nothing Then
Textbox2 = buscar.Offset(0, 1).Value
Textbox3 = buscar.Offset(0, 2).Value
textbox4 = buscar.Offset(0, 3).Value
Textbox5=buscar.Offset(0,4).Value
Textbox6 = buscar.Offset(0,5).Value
Rem Ahora le decimos que si no lo encuentra, nos muestre un mensaje diciendo que el número no ha sido encontrado:
        Else
        MsgBox "El número no se encuentra en la base de datos. Compruebe que ha introducido la referencia correcta"
    End If
Rem Una vez nos ha encontrado el dato, guardamos el libro activo y lo cerramos:
ActiveWorkbook. Sabe
ActiveWorkbook.Close
Muy bien, una vez hecho esto vamos a programar el segundo CommandButoon, pero antes vamos a crear un nuevo libro de excel y guardarlo con el nombre libro2.xls en la ubicación:
C:\Documentos and Settings\Silvi\Escritorio
Ahora empezamos a programar el CommandButton2.
Sub CommandButton2_Click()
Rem abrimos el libro 2.
Workbooks.Open Filename:="c:\documentos and settings\Silvia\Escritorio\libro2.xls"
Rem Activamos la hoja donde queremos escribir los datos y nos vamos a la celda A1
Workbooks("libro2.xls").Sheets("hoja1").Range("A1").Select
Insertamos una fila para escribir los datos:
Selection.Entirerow.Insert
Rem Ahora pasamos los datos de los Textbox a la hoja1 del libro2.
Activecell.FormulaR1C1 = Textbox1.Value
Activecell.Offset(0, 1) = Textbox1.Value
Activecell.Offset(0, 2) = Textbox1.Value
Activecell.Offset(0, 3) = Textbox1.Value
Activecell.Offset(0, 4) = Textbox1.Value
Activecell.Offset(0, 5) = Textbox1.Value
Rem Ahora limpiamos los Textbox
Textbox1 = ""
Textbox2 = ""
Textbox3 = ""
Textbox4 = ""
Textbox5 = ""
Textbox6 = ""
Rem Pasamos el cursor al Primer textbox con el comando Setfocus
Textbox1.Setfocus
Rem Ahora Guardamos el libro y lo cerramos.
ActiveWorkbook. Sabe
ActiveWorkbook.Close
Esto sería todo, espero que te sirva, si tienes alguna duda aquí estamos.
Hasta pronto.
Añade un comentario a esta respuesta
Añade tu respuesta
Haz clic para o
Escribe tu mensaje