Como hacer que un combobox devuelva el texto de la celda y no sus fórmulas.

Tengo una macro de búsqueda alojada en un combobox.

El rowsource es una lista de 40 celdas con nombres propios, que vienen de una base de datos de otro libro, el combobox. Se supone que debería encontrar uno de los elementos de la lista, en la lista desplegable aparece el texto, pero a la hora de seleccionar un nombre se lee la fórmula que corresponde a la celda y no el nombre, por lo tanto no realiza la búsqueda . Dentro de la macro de búsqueda probé con xlvalues, xlformulas, ya cambie la propiedad del combobox1.text y no hace nada, ¿qué más puedo hacer?

Nota:es una utilidad que llevo varios años trabajando, pero como lo indico, anteriormente en las celdas había texto, ahora hay fórmulas

Respuesta
1

Viendo el código que usas sería más fácil encontrar el problema y ayudarte

Abraham Valencia

1 respuesta más de otro experto

Respuesta
1

Si el combobox se carga ya sea por additem o por un rowsource crea an ambos casos un indice que parte de 0 es decir si la fórmula contempla nombre los asignara así juan 0, pedro 1, pablo 2, razón por la cual si vas a hacer la búsqueda en al misma tabla, la macro para el evento combobox quedaría así.

Private Sub ComboBox1_Change()
Set datos = Range("e2").CurrentRegion
nombre = ComboBox1.Value
fila = ComboBox1.ListIndex + 1
TextBox1.Text = datos.Cells(fila, 1)
End Sub

para en caso de que la busqueda se realice en otra tabla la programacion es mas o menos asi, en este caso se use match (coincidir) o bien se puede usar find o findnext (si son varios), en ambos casos no importa si es valor, formula o texto, las instrucciones buscaran la info y devolveran un resultado

Private Sub ComboBox1_Change()
Set datos = Range("g2").CurrentRegion
nombre = ComboBox1.Value
fila = WorksheetFunction.Match(nombre, datos.Columns(1), 0)
TextBox1.Text = datos.Cells(fila, 1)
End Sub
Private Sub ComboBox1_Change()
Set datos = Range("g2").CurrentRegion
nombre = ComboBox1.Value
fila = WorksheetFunction.Match(nombre, datos.Columns(1), 0)
TextBox1.Text = datos.Cells(fila, 1)
End Sub

en caso de que no se lo que buscas te recomiendo subas una imagen con un ejemplo 

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas