¿Cómo utilizar la variable for y para modificar diferentes controles Textbox?

Lo que hace la macro es que con los datos de la primera columna de los textbox donde van los códigos de los productos, me liste en la tercera columna la descripción del producto y en la cuarta el precio del producto. Intento utilizar la variable FOR para hacer más reducido el código de modo que se repita desde el primer textbox de la columna de los códigos y coloque cada una de las descripciones de los productos en la tercera y los precios en la cuarta.

Mi código es el siguiente:

Private Sub CommandButton2_Click()
Call Mostrar_descripcion_precio
End Sub
Private Sub Mostrar_descripcion_precio()
If Trim(Txt_codigo1.Text) <> "" Or Trim(Txt_codigo2.Text) <> "" Or Trim(Txt_codigo3.Text) <> "" Or Trim(Txt_codigo4.Text) <> "" Or Trim(Txt_codigo5.Text) <> "" Or Trim(Txt_codigo6.Text) <> "" Or Trim(Txt_codigo7.Text) <> "" Or Trim(Txt_codigo8.Text) <> "" Or Trim(Txt_codigo9.Text) <> "" Or Trim(Txt_codigo10.Text) <> "" Or Trim(Txt_codigo11.Text) <> "" Or Trim(Txt_codigo12.Text) <> "" Or Trim(Txt_codigo13.Text) <> "" Or Trim(Txt_codigo14.Text) <> "" Or Trim(Txt_codigo15.Text) <> "" Then
Dim Nombre As Variant
Dim Precio As Variant
Dim Rango As Range
Dim NombreBuscado As Variant
On Error GoTo ErrorHandler
Set Rango = Hoja1.Range("Productos")
NombreBuscado = CDbl(Me.Txt_codigo1.Value)
Nombre = Application.WorksheetFunction.VLookup(NombreBuscado, Rango, 3, 0)
Precio = Application.WorksheetFunction.VLookup(NombreBuscado, Rango, 4, 0)
With Me
    .Txt_p1.Value = Nombre
    .Txt_pu_1.Value = Format(Precio, "0.00 ")
End With
Exit Sub
ErrorHandler:
If Err.Number = 1004 Then
    Me.Txt_p1.Value = "El valor '" & NombreBuscado & "' no fue encontrado."
Else
    Me.Txt_p1.Value = "Ha ocurrido un error: " & Err.Description
End If
End If
End Sub

Deseo poder modificar lo que está en recuadro rojo, de modo que por ejemplo cuando el FOR se ejecute desde 1 el valor buscado sea el código de Txt_codigo1 y modifique el Txt_p1(que contiene la descripción), Txt_pu_1 (que contiene el precio unitario) ; y así sucesivamente hasta llegar al 15 porque tengo 15 filas de productos. 

Intenté colocar el código así: Txt_codigo & x & .value

x= valor del FOR que inicia en 1 y termina en 15

&= utilizaba para concatenar la palabra

Pero no me funcionó, lo que me interesa realizar es colocar el nombre de un control y unirlo con un número generado por un for. POR EJEMPLO:

FOR X=1 TO 50

TEXTBOX &X& .TEXT= EMPTY

COMBOBOX &X& .VALUE=EMPTY

NEXT

Subo el archivo a mediafire para que lo puedan verificar:

http://www.mediafire.com/file/vbing93r0th9jm5/BUSCARV_PRUEBA.xlsm

1 Respuesta

Respuesta
1

Considera el siguiente ejemplo:

  Dim i As Long
  For i = 1 To 15
    Controls("TextBox" & i).Value = Empty
  Next

¡Muchas gracias por compartir tus conocimientos! , Dios te bendiga.

Me da gusto ayudarte. G r a c i a s por comentar.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas