none
Buscar texto en libro de Excel a través de un texbox y un botón RRS feed

  • Pregunta

  • Buen día.

    Quisiera saber si hay alguna manera de buscar un texto en una celda de un libro de Excel (ya existente) a través de un textbox y un botón que hagan la búsqueda en dicho libro. Es para un proyecto que quiero realizar. Ya he buscado una forma, pero todo lo que me aparece son tutoriales en excel, pero yo estoy trabajando en Visual Studio en VB.NET.


    Ejemplo:

    Digamos que en el textbox escribo "Computadora" y le doy en el botón buscar, quiero que la aplicación busque en los rangos una celda que tenga escrito la palabra "Computadora" en ella y después me pueda mostrar en otro textbox algún otro valor que este en esa fila. 

              A                      B

    1     Teclado               Acer

    2     Mouse                 HP

    3     Computadora     Dell

    4     Pantalla               Asus


    En el textbox coloco "Computadora" y busco en el libro con el botón.

    Una vez encontrada la celda quiero que en otro textbox diga "Dell"


    Este es el código que tengo hasta el momento (también incluyo un modulo que uso hasta el final):

    Si alguien me pudiera orientar o explicar la forma de hacer lo que busco se lo agradecería.


    ================================================
    
    Imports System.ComponentModel
    Imports System.Runtime.InteropServices
    
    Public Class Entrada
    
        Dim ExcelApp = New Microsoft.Office.Interop.Excel.Application
        Dim Libro = ExcelApp.Workbooks.Open("D:\Prototipo\A1.xlsx")
        Dim Final As Long
        Dim Busqueda As Long
        Public Comparar As String
    
    
        <DllImport("user32.DLL", EntryPoint:="ReleaseCapture")>
        Private Shared Sub ReleaseCapture()
        End Sub
        <DllImport("user32.DLL", EntryPoint:="SendMessage")>
        Private Shared Sub SendMessage(ByVal hWnd As System.IntPtr, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As Integer)
        End Sub
    
    =========================================================
    
    TIEMPO ACTUAL
    
    =========================================================
    
        Private Sub Entrada_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            Me.Timer1.Enabled = True
        End Sub
    
        Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
            Me.TIME.Text = DateTime.Now.ToLongTimeString
        End Sub
    
    ========================================================
    DE LOS TEXTBOX DEL FORMULARIO, SE ENVÍAN A UN LIBRO DE EXCEL QUE GUARDA LOS VALORES
    
    ========================================================
    
        Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
    
             If Val(Entrada0.Text) > 0 Then
                 Salida0.Text = TIME.Text
                 MsgBox("Gracias Por Tu Visita " & Nombre.Text,, "Gracias Por Tu Visita")
                 Form1.Show()
                 Me.Close()
             Else
                 Entrada0.Text = TIME.Text
                 MsgBox("Bienvenido " & Nombre.Text,, "Bienvenido")
             End If
    
             Final = nReg(Libro.Worksheets("Asesores"), 2, 1)
             Libro.Worksheets("Asesores").cells(Final, 1) = Nombre.Text
    
             Final = nReg(Libro.Worksheets("Asesores"), 2, 2)
             Libro.Worksheets("Asesores").cells(Final, 2) = COMPARADOR
    
             Final = nReg(Libro.Worksheets("Asesores"), 2, 3)
             Libro.Worksheets("Asesores").cells(Final, 3) = Carrera.Text
    
             Final = nReg(Libro.Worksheets("Asesores"), 2, 4)
             Libro.Worksheets("Asesores").cells(Final, 4) = Semestre.Text
    
             Final = nReg(Libro.Worksheets("Asesores"), 2, 5)
             Libro.Worksheets("Asesores").cells(Final, 5) = Entrada0.Text
    
             Final = nReg(Libro.Worksheets("Asesores"), 2, 6)
             Libro.Worksheets("Asesores").cells(Final, 6) = Salida0.Text    
    
             Libro.save()
    
             ExcelApp.Quit()
    
             Libro = Nothing
             ExcelApp = Nothing
    
        End Sub
    
    =======================================================
    
    CERRAR, MINIMIZAR Y MOVER UN PANEL DEL FORMULARIO
    
    =======================================================
    
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Form1.Show()
            Me.Close()
        End Sub
    
        Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
            Me.WindowState = FormWindowState.Minimized
        End Sub
    
        Private Sub Control_KeyPress(sender As Object, e As KeyPressEventArgs) Handles Control.KeyPress
            e.Handled = Not IsNumeric(e.KeyChar) And Not Char.IsControl(e.KeyChar)
        End Sub
    
        Private Sub Panel1_MouseMove(sender As Object, e As MouseEventArgs) Handles Panel1.MouseMove
            ReleaseCapture()
            SendMessage(Me.Handle, &H112&, &HF012&, 0)
        End Sub
    End Class
    
    
    
    *******************************************************
    
    MODULO
    
    *******************************************************
    
    Module Module2
    
        Public Function nReg(Hoja As Microsoft.Office.Interop.Excel.Worksheet, nFila As Long, nColumna As Long)
            Do Until Hoja.Cells(nFila, nColumna).value = ""
                nFila = nFila + 1
            Loop
            Return nFila
        End Function
    
    End Module


    martes, 21 de enero de 2020 23:45