Uso de Vlookup en Textbox de Userform.

07/07/2006 - 11:09 por mk | Informe spam
Aquí estoy otra vez dando la paliza...

Estoy con un Userform que entre otros tiene dos Textbox (TxtReferencia,
TxtArticulo) y lo que quiero conseguir es que al introducir la
referencia de un artículo en uno de ellos automaticamente aparezca el
nombre en el otro.

Tengo una hoja en el libro donde he puesto una matriz con todas las
referencias y nombres de los artículos ("Matriz").

El código que estoy utilizando es el siguiente:

Private Sub TxtReferencia_Exit(ByVal Cancel As MSForms.ReturnBoolean)
On Error GoTo EH
TxtArticulo.Value = Application.VLookup(TxtReferencia.Value,
Sheets("Matriz").Range("E2:F2000"), 2, 0)
Exit Sub
EH:
If TxtReferencia.Value = "" Then
TxtArticulo.Value = ""
Exit Sub
Else
TxtArticulo.Value = ""
MsgBox TxtReferencia.Value & " Referencia no encontrada"
End If
End Sub

Cuando cargo el formulario e introduzco el valor de la referencia
siempre me aparece el MsgBox, ¿alguna idea?.

Muchísimas gracias desde ya!.

Mk.

Preguntas similare

Leer las respuestas

#6 mk
11/07/2006 - 00:08 | Informe spam
KL escribió:
Hola mk,

Tal como te habia comentado en mi mensaje anterior el problema estaba en el
punto 1: el valor de txtReferencia es siempre texto mientras que la columna
[A] de la tabla matriz contiene valores numericos. Prueba sustituir el
codigo que te propuse antes por el siguiente:

Private Sub TxtReferencia_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TxtReferencia = "" Then
TxtArticulo = "": Exit Sub
End If
On Error GoTo AB
TxtArticulo = Application.VLookup(Val(TxtReferencia),
Sheets("Matriz").Range("A2:B12000"), 2, 0)
Exit Sub
AB:
MsgBox TxtReferencia & " Referencia no encontrada"
TxtArticulo = "": TxtReferencia = "": Cancel = True
End Sub

Respecto al problema de la fecha - es exactamente el mismo que lo de arriba.
Un textbox no almacena fechas ni numeros, sino cadenas de texto. Antes de
volvar el valor de un textbox en tu matriz tendras que convertirlo en el
tipo de datos correcto. P.ej.:

DateValue(TxtFecha)

Saludos,
KL




Como siempre y para variar, MUCHAS GRACIAS!!

Funciona perfectamente, con mis limitados conocimientos no lo hubiera
averiguado en años. Trataré de aprender de la experiencia.

Saludos.

Mk.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida