¿Cómo tomar un código desde un list box y usarlo en un vlookup, que muestre el nombre encontrado en un textbox?

Trato de adaptar esto a mi userform:

Private Sub UserForm_Initialize()
BOXCodigo.List = Worksheets("DATOS PARA OP").Range("A4:A43").Value

'Declaramos las variables.
Dim Nombre As Variant
Dim Rango As Range
Dim NombreBuscado As Variant

Set Rango = Sheets("DATOS PARA OP").Range("A4:S43").CurrentRegion

NombreBuscado = Me.BOXCodigo.Value
Nombre = Application.WorksheetFunction.VLookup(NombreBuscado, Rango, 2, 0)
TEXAbogado.Value = Nombre

End Sub

Respuesta
1

Fíjate en este ejemplo

Al escribir las primeras letras de cliente sale listbox eliges el que quieres y manda los datos a textbox

https://www.youtube.com/watch?v=0UuR_zRQCB4&list=PLdK9H5dMIfQi1fNgZwpRu_pr6l-xwAWmb

1 respuesta más de otro experto

Respuesta
1

Creo que tengo más dudas yo que tú.

- ¿Por qué quieres hacer esto en el evento "Initialize"?

- Esto : "¿BOXCodigo" es un combobox o un listbox?

- Al inicio del userform, evento "initialize" el valor del BOXCodigo es blanco, entonces estás buscando un blanco en el rango.


Me gustaría que olvidaras el código y me expliques con simples palabras qué quieres hacer.

Lo explicas con un ejemplo y paso a paso.

Paso 1, abro el userform

Paso 2, selecciono un dato "xdf" en el comboboxABC

Paso 3, presiono el botónAAA

paso 4, quiero que ...

Utiliza tu información, utiliza un ejemplo, no pongas: "selecciono un dato", cuál dato, cómo se llama el dato, poner simplemente "selecciono un dato" no ayuda a entender lo que tú necesitas.

Recuerda que para ti puede ser obvio porque estás viendo tus datos, pero de este lado no estamos viendo lo que tú estás viendo.


Cuando te refieras a buscar un código en la hoja, pon la siguiente información:

- ¿Cómo se llama la hoja?

- ¿En cuál columna están los códigos?

- ¿Son valores texto o numéricos?

- ¿En cuál columna está el dato que quieres de resultado?


Ya veo que puedes poner imágenes, sería genial si explicas todo con imágenes.

-

Ok, 100% de acuerdo, lo que es obvio para mi no necesariamente es entendible para otros.

Estoy preparando un userform  para almacenar en una base de datos lo siguiente:

Fecha, Código, Abogado, Importe, NN Beneficiario, OP para. Después de ingresado esto, al pulsar el botón Cargar, que lo almacene en una Hoja "BASE PARA OP", ya que en la "Alta" (Hoja1), estaría este "menú" de Carga (Alta de Datos OP).

Al terminar la carga debe volver a la hoja "Alta", descargar el formulario y quedarse en Fecha para iniciar una nueva carga.

"Manualmente" yo lleno la Base de hoja2 "BASE PARA OP", usando un Código de 3 dígitos que me trae el nombre del Abogado y también el nombre del Beneficiario,(=buscarv(Clave;tabla;columna;0), desde una Hoja3 "DATOS PARA OP",que esta oculta(para que no borren su contenido) y que tiene los datos del abogado y se ordena de menor a mayor por el Código.

Lo que pretendo es hacer lo mismo pero PROGRAMANDO UN userform, y borrando la hoja "Alta", para lo cual "Código" toma el listado de los codigos de 3 digitos de la hoja3 "DATOS PARA OP" y debe mostrarme en "Abogado", el nombre del Abogado (lo que hace el buscav en una celda), después debe permitirme seguir la carga del userform.

Creo que con eso puedo explicarme, espero que puedas ayudarme

Empecemos con esto.

Reemplaza tu código por esto:

Private Sub BOXCodigo_Change()
  TEXAbogado.Value = ""
  'llena el textbox abogado con el nombre del abogado, según el código seleccionado
  If BOXCodigo.ListIndex > -1 Then
    TEXAbogado.Value = Sheets("DATOS PARA OP").Range("B" & BOXCodigo.ListIndex + 4).Value
  End If
End Sub
'
Private Sub UserForm_Initialize()
  'carga los códigos de la columna A en el combo
  With Sheets("DATOS PARA OP")
    BOXCodigo.List = .Range("A4", .Range("A" & Rows.Count).End(3)).Value
  End With
End Sub

Funciona de la siguiente manera:

Primero, en el evento initialize se cargan los códigos en el combo.

Segundo, cuando seleccionas un código en el combo, en automático se llena el textbox con el nombre del abogado.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas