Buscar nombres y obtener código con Userform y Combobox

Estoy incursionando en VBA-Excel, no soy programador. Mi inquietud y la necesidad de automatizar “Gestión de inventarios”, por lo que necesito consultar nombres para obtener código del nombre, por lo que líneas abajo describo el código para dicho procedimiento; cuando ejecuto el formulario se detiene en la línea 2, con el msg: Se ha producido el error 1004 en tiempo de ejecución… No se puede obtener la propiedad Vlookup de la clase WorksheetFunction. Recurro para solicitar muy cordialmente me puedan ayudar para solucionar el problema. Gracias de antemano, a la espera de la deferencia. Me despido. Eduardo Calle R., Bolivia, Cochabamba.

Private Sub CommandButton1_Click()

Valor = Application.WorksheetFunction.VLookup(Me.ComboBox1.Value, HjVentas.Range("M:N"), 2, 0)

Me.Label1.Caption = Valor

End Sub

Private Sub CommandButton2_Click()

Unload Me

End Sub

Private Sub UserForm_Initialize()

Me.ComboBox1.List = HjVentas.Range("M2:M108").Value

End Sub

1 Respuesta

Respuesta

Hol.a

Cuando usas algo como esto "HjVentas.Range("M2:M108")", significa que el módulo de la hoja lleva por nombre "HjVentas", no la hoja. Si quien tiene ese nombre es la hoja reemplázalo así:

WorkSheets("HjVentas"). Range("M2:M108")

Comentas

Abraham Valencia

Muy agradecido por la pronta respuesta. Completé la recomendación, pero continua con el mismo problema. Agradezco nuevamente por la deferencia.

Coloca tu archivo en algún "drive" y deja el enlace por aquí para poder verlo.

Abraham Valencia

Buenas noches.

Disculpa la demora, es la primera vez que realizado esta operación. El enlace solicitado. Gracias nuevamente

https://drive.google.com/drive/my-drive 

Entra a tu "drive" y dale click derecho al archivo y elige "compartir" y bríndanos el enlace que te dará en ese momento.

Abraham Valencia

Buenos días, estimado Abraham

Lo solicitado.

https://drive.google.com/file/d/1nz6TEPDfqbDm4K-uy-1x1dhvyd8fAgXb/view?usp=sharing 

Tu módulo si se llama "HjVentas" así que sí era correcto colocar "HjVentas.Range("M:N")". Si igual deseas usar "WorkSheets", el nombre es "Ventas", con cualquiera de los dos te servirá. El único ¿error? Que vi es que estás intentando extraer el valor de la columna 14 del rango de datos, pero al menos en lo que mandas solo hay dos columnas, si en tu archivo original hay más columnas, verifica que la realmente en el rango de datos en donde actúa el "Vlookup" haya al menos 14 columnas.

Abraham Valencia

¡Gracias!  Apreciado Abraham

Es el archivo original, como puedes apreciar existen 14 columnas

Claro, 14 en total, pero en el rango a buscar solo hay dos, cambia esa 14 por un 2 y listo.

Abraham Valencia

Hice el cambio. Continua el mismo problema.

Private Sub CommandButton1_Click()
Valor = Application.WorksheetFunction.VLookup(Me.ComboBox1.Value, Worksheets("Ventas").Range("M:N"), 2, 0)
Me.Label1.Caption = Valor
End Sub
Private Sub CommandButton2_Click()
Unload Me
End Sub
Private Sub UserForm_Initialize()
Me.ComboBox1.List = Worksheets("Ventas").Range("M2:M108").Value
End Sub

:)

Abraham Valencia

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas