Macro- Excel: Búsqueda por medio de un textbox dependiente de un combobox

Código.

En sí el cód. Funciona bien, realiza una búsqueda al ingresar una palabra en el textbox, ese resultado se refleja en el listbox. Pero necesito que pueda buscar la palabra que se ingrese en el texbox en 2 hojas diferentes, la idea es seleccionar la hoja donde quiero que busque con el combobox.

El código que utilizo es el siguiente:

Dim i, items, xEmpleado

 Private Sub CommandButton1_Click()

ListBox1.ColumnCount = 4

ListBox1.ColumnWidths = "100pt;100pt;100pt;150pt"

ListBox1.Clear

If Sheets("Hoja2").Range("A:E").Find(TextBox1.Value) Is Nothing Then

TextBox1.Text = ""

MsgBox "No se encontraron los datos buscados", 16, "Datos No Encontrados"

Else

With Sheets("Hoja2").Range("A:E")

Set c = .Find(TextBox1.Value)

primera = c.Address

fila = c.Row

columna = c.Column

Do

ListBox1.AddItem Cells(fila, columna - (columna - 1))

ListBox1.List(ListBox1.ListCount - 1, 1) = Cells(fila, (columna - (columna - 1)) + 1)

ListBox1.List(ListBox1.ListCount - 1, 2) = Cells(fila, (columna - (columna - 1)) + 2)

ListBox1.List(ListBox1.ListCount - 1, 3) = Cells(fila, (columna - (columna - 1)) + 3)

ListBox1.List(ListBox1.ListCount - 1, 4) = Cells(fila, (columna - (columna - 1)) + 4)

ListBox1.List(ListBox1.ListCount - 1, 5) = fila

Set c = .FindNext(c)

fila = c.Row

columna = c.Column

Loop While c.Address <> primera

End With

End If

End Sub

Private Sub ListBox1_Click()

    Sheets("Hoja2").Activate

    fila = ListBox1.List(ListBox1.ListIndex, 5)

    Cells(fila, "e").Select

    On Error Resume Next

        sLink = ActiveCell.Hyperlinks(1).Address

        num = Err.Number

        des = Err.Description

    On Error GoTo 0

    If num = 0 Then

        ActiveCell.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True

    Else

        MsgBox "No hay archivo cargado"

    End If

End Sub

1 respuesta

Respuesta
1

Daniela,

Para agergar los nombre de las hoja al combobx seria algo asi

ComboBox1. AddItem Sheet1. Name
ComboBox1. AddItem Sheet2. Name

sheet1 en office en espanoal seria hoja1

Para la busqueda seria algo asi

hojaX = combobox.value 

es decir tu codigo debe de empezar asi  

dim HOJAX
hojaX = combobox1.value 
ListBox1.ColumnCount = 4
ListBox1.ColumnWidths = "100pt;100pt;100pt;150pt"
ListBox1. Clear

y donde tengas hombre de hojas cambala por hojaX esto hara el enfoque a la hoaj que decidas hacer la busqueda

If hojax.Range("A:E").Find(TextBox1.Value) Is Nothing Then
TextBox1.Text = ""
aqui el resto del codigo ...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas