minimem | |
| 2007-08-28 04:54 - Respuestas: 6 - Tema nº: 2464687
Características: Windows XP Home, processor 1.86 GHZ, 782 MHZ, 1.00 GB.
hola, probe esta macro buscando "recursos" como le hago para que seleccione desde un combobox sin definir preciso una palabra o numero y la muestre en diversos texbox?
Selection.Find(What:="recursos", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
| |
|
|
ebolo | |
|
Re: Comando de busqueda en excel - 2007-08-28 09:18 - Respuesta 2
Hola minimen; la verdad que no entiendo muy bien lo que quieres.
Por lo que entiendo quieres buscar una palabra desde un combo en un rango seleccionado y te muestre en textbox la palabra; es que si es ésto, no lo entiendo porque si la palabra ya la tienes en el combo no necesitas usar el método Find,...
dime cosas.
| |
|
|
ebolo | |
|
Re: Comando de busqueda en excel - 2007-08-28 09:24 - Respuesta 3
te pongo un ejemplo sacado de la ayuda del access,
Ejemplo del método Find
Este ejemplo busca todas las celdas del rango A1:A500 en la hoja de cálculo uno que contienen el valor 2 y las pone de color gris.
With Worksheets(1).Range("a1:a500")
Set c = .Find(2, lookin:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Address
Do
c.Interior.Pattern = xlPatternGray50
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address firstAddress
End If
End With
| |
|
|
minimem | |
|
Re: Comando de busqueda en excel - 2007-08-29 03:30 - Respuesta 4
gracias por el apoyo que nos brindas.
la duda que tengo es la siguiente:
Estoy haciendo una macro la cual contiene una forma con los siguientes textbox nombre direccion telefono, etc.
lo que debe hacer es abrir un archivo de excel el cual contiene cierta cantidad de filas buscar un nombre y al encontrarlo debe de tomar la fila donde encontro el nombre y cada columna la debe de depositar o dejar en cada textbox que le corresponde.
ejemplo:
al capturar en el texbox nombre dar clic en el commandbotton cunsultar y al encontrar el nombre la fila resultante debe de depositar los datos en los textbox que les corresponde. por eso probe con uno en especifico como le hago para que los textbox muestren los datos de toda la fila.
Nota:
la consulta debe ser con cualquier nombre que se seleccione en mi texbox de nombre. | |
|
|
ebolo | |
|
Re: Comando de busqueda en excel - 2007-08-29 10:12 - Respuesta 5
Hola de nuevo; ahora ya está claro.
Te voy a poner cómo buscar un dato desde 1 textbox + botón; y cómo rellenar un combobox y buscar desde el combo. Está probado en access97, supongo que en otros access funcionará igual.
Buscamos en el combobox ó en textbox
Private Sub CommandButton1_Click()
Dim objWorkBook As Object, rutalibro As String
Dim xls As Object
rutalibro = "turutalibro.xls"
Set xls = CreateObject("Excel.Application")
'Abrimos libro de excel
Set objWorkBook = xls.Workbooks.Open(rutalibro)
With objWorkBook.Worksheets("Hoja2")
'En la siguiente línea se busca lo puesto en el texto1 ó lo puesto en el combobox1, en el rango a1:a500.
'Quita la comilla simple del principio si quieres que te busque en el textbox1 y comenta la otra con la comilla simple.
Set c = .Range("a1:a500").Find(Me.ComboBox1, LookIn:=xlValues)
'Set c = .Range("a1:a500").Find(Me.TextBox1, LookIn:=xlValues)
If Not c Is Nothing Then
Me.TextBox2 = .Range("B" & c.Row) 'ponemos lo que hay en la celda B...
Me.TextBox3 = .Range("C" & c.Row) 'ponemos lo que hay en la celda C...
Me.TextBox4 = .Range("D" & c.Row) 'ponemos lo que hay en la celda D...
End If
End With
'Cerramos objeto
objWorkBook.Close
'liberamos memoria
Set objWorkBook = Nothing
Set xls = Nothing
End Sub
Rellenamos combobox cada vez que entramos a la Hoja2.
Private Sub Worksheet_Activate()
Dim objWorkBook As Object, rutalibro As String
Dim xls As Object
rutalibro = "turutalibro.xls"
Set xls = CreateObject("Excel.Application")
'Abrimos libro de excel
Set objWorkBook = xls.Workbooks.Open(rutalibro)
'Vaciamos combobox
Me.ComboBox1.Clear
'Rellenamos combobox con datos de la hoja2, columna A
With objWorkBook.Worksheets("Hoja2")
For t = 1 To .Range("a1").End(xlDown).Row
Me.ComboBox1.AddItem .Range("A" & t)
Next t
End With
'Cerramos objeto
objWorkBook.Close
'liberamos memoria
Set objWorkBook = Nothing
Set xls = Nothing
End Sub
saludos.
Edito porque una letra salía mal.
[Mensaje editado por ebolo con fecha: 29-08-2007 10:17:04]. | |
|
|
|