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