Cargar datos en un Textbox según la selección desde un Combobox

En un formulario y desde un Combobox se seleccionan los nombres de los clientes, que se encuentran en la columna D de la hoja1. Cuando se selecciona un cliente, se deberá cargar en un Textbox su dirección, para poderla modificar (si procede), y que se encuentra en la columna H de la misma hoja1. En la columna D pueden estar repetidos los nombres de los clientes, pero en el Combobox no aparecerán repetidos.

2 respuestas

Respuesta
3

Cambia el nombre de tu textbox y del combobox, y utiliza el evento change del combo:

Private Sub ComboBox1_Change()
TextBox1.Value = Application.WorksheetFunction.VLookup(ComboBox1.Value, Range("D:H"), 5, 0)
End Sub

Si te ha valido la respuesta.

Gracias por la rapidez, pero a pesar de que rellena el textbox, me sale el siguiente error que adjunto

¿Puedes poner aquí el código?, tiene toda la pinta de estar buscando en una columna que no es. Me explico, si has cambiado el 5 que había en la instrucción o has cambiado las columnas de la matriz en que busca D:H, te puede dar ese error.

Disculpa mi torpeza. Seguro que es una tontería que se me escapa. El código es:

Private Sub ComboBox1_Change()
TextBox8.Value = Application.WorksheetFunction.VLookup(ComboBox1.Value, Range("D:H"), 5, 0)
End Sub

¿Dónde cargas el combo? Si algún elemento del combo, no lo encuentra, dará error.

Para evitarlo, pon esto:

Private Sub ComboBox1_Change()
On Error Resume Next
TextBox1.Value = Application.WorksheetFunction.VLookup(Trim(ComboBox1.Value), Range("D:H"), 5, 0)
End Sub

El Trim es por si tienes espacios en blanco, al principio o al final en tus datos, los elimina.

El combo se carga de la columna D

Disculpa el haberme precipitado. El Combo no se carga de la columna D, sino de la columna B de la hoja2

¿Probaste este código?

Private Sub ComboBox1_Change()On Error Resume NextTextBox1.Value = Application.WorksheetFunction.VLookup(Trim(ComboBox1.Value), Range("D:H"), 5, 0)End Sub

Disculpa,

Private Sub ComboBox1_Change()
On Error Resume Next
TextBox1.Value = Application.WorksheetFunction.VLookup(Trim(ComboBox1.Value), Range("D:H"), 5, 0)
End Sub
Respuesta
1

Prueba con usar una instrucción similar a la siguiente

TextBox1.Text = Application. WorksheetFunction. VLookup(ComboBox1.Text,Range("D:H"),5,0)

Igualmente si en tu base puede estar el cliente más de una vez, puedes llegar a tener un error en caso que tengas al mismo cliente con dos direcciones distintas (por ejemplo)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas