Vlookup o BuscarV en VBA Excel

Estoy Tratando de Crear unos Vlookup en unos cuadros de texto que cuando se seleccione un código por ejemplo, me traiga el nombre y el lugar de trabajo.

1 Respuesta

Respuesta
1
Ampliá un poco más tu consulta, para que pueda darte una respuesta acertada.
¿Los cuadros de texto... están en un Userform o en la hoja?
¿Y dónde deben ser colocados los otros datos? ¿Supongo qué en otros textbox pero dónde están?
Y si indicás la ubicación de las col donde se encuentra cada dato mejor.
Sdos
Elsa
http://aplicaexcel.galeon.com/guias.htm
Saludos Elsa, muchas gracias por tu respuesta,
para ampliar el tema el campo esta en un userform, y deseo que los otros campos se auto actualicen cuando hago una selección por CÓDIGO, NOMBRE, LUGAR DE TRABAJO
los campos se llaman,
cod, nombre, workplace
Lo más importante para mi seria que se pudiese seleccionar cualquiera de los campos para buscar y que igual los otros me permitieran auto rellenarse
saludos
Carlos
Esta es una rutina de ejemplo. En mi página de 'Descargas' encontrarás el ejemplo, se llama Interactuando con Userforms . Debes tomar el Userform1.
Lo importante aquí es la línea en negrita.
Private Sub TextBox1_AfterUpdate()
Sheets("Hoja1").Select
filalibre = Range("A2").End(xlDown).Offset(1, 0).Row 'la variable filalibre guarda el nro. de la primer celda vacía.
control = 0
dato = TextBox1
rango = "A2:A" & filalibre
Set midato = ActiveSheet.Range(rango).Find(dato, LookIn:=xlValues, LookAt:=xlWhole)
If Not (midato) Is Nothing Then
ubica = midato.Address(False, False)
TextBox2.Value = Range(ubica).Offset(0, 1).Value  (*)
TextBox3.Value = Range(ubica).Offset(0, 2).Value
control = 1
End If
Set midato = Nothing
End Sub
(*) Otro modo de escribirlo:
Textbox2.Value = ubica.offset(0,1).value
Funciona de maravilla Elsa, me quito el sombrero, podrías ayudarme en algo más,
con esta rutina que me ayudaste el dato a buscar esta en TEXTBOX1, sin embargo, me gustaría que se pudiese buscar por cualquiera de las 3 maneras, como en access cuando buscas una llave y te muestra los otros campos relacionados al combobox,
si haces click en el nombre te aparezca el listado de los nombres y códigos y compañía alado,
si haces click en el código, igual aparezca la demás información de la misma manera,
pero igual al final se populen los 3 campos sin importar con cual hagas el click para la búsqueda
saludos y gracias nuevamente
Entonces usaría un botón para activar la macro, que previamente evalúe cuál caja de texto tiene datos. Y dejá los 3 controles sin rutinas.
Algo así:
Private Sub CommandButton1_Click()
if textbox1 <> "" then
dato = TextBox1
rango = "A2:A" & filalibre
elseif textbox2 <> "" then
dato = TextBox2
rango = "B2:B" & filalibre
else   'se asume que el dato está en el 3er control
dato = TextBox3
rango = "C2:C" & filalibre
end if
Set midato = ActiveSheet.Range(rango).Find(dato, LookIn:=xlValues, LookAt:=xlWhole)
If Not (midato) Is Nothing Then
fila = midato.row
textbox1.value=cells(fila,1)
TextBox2.Value = cells(fila,2)
TextBox3.Value = cells(fila,3)
End If
Set midato = Nothing
End Sub
Sdos
Elsa
*No dejes de visitar el resto del sitio....

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas