Introducir dtos a un combobox

Como hago para que un combobox me aparezcan datos que voy ingresando por medio de un textbox a una hoja de excel; por ejemplo yo estoy haciendo un programita de inventarios pero quiero saber como hago para cada ves que yo ingrese un nuevo producto este me aparezca en el combobox
{"lat":57.7041472343419,"lng":-78.75}
1

1 respuesta

Respuesta
1
Prueba este script
Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Dim d As String
If KeyCode = 13 Then
    TextBox1 = Trim(TextBox1)
    If TextBox1 = "" Then Exit Sub
    If Len(TextBox1) = 0 Then Exit Sub
    Range("A4") = TextBox1
    Range("A4").Select   
    d = "A" & Range("B1").Value + 4
    Selection.EntireRow.Insert
    ComboBox1.ListFillRange = "A5:" & d
    TextBox1 = ""
    TextBox1.Activate
End If
End Sub
Esta en el evento KeyUp del text en donde ingresas el dato, se activa cuando presionas la tecla enter, cada vez que presiones enter, te agregara el dato al combo, salvo si en el textbox no hay dato, así previenes agregar espacios en blanco en el combo
ahora bien, para este ejemplo debes implementar lo siguiente
el text y el combop deben estar no más abajo de la fila A4 ( luego lo puedes modificar, pero para que veas el funcionamiento)
Esto por que cada vez que tu presiones enter estarás ingresando el dato en la columna A en forma secuencial desde la celda A5 teniendo como entrada la celda A4
así cada enter pasara el dato a la Celda A4 y luego el cursor ingresara un nueva fila desplazando el dato un fila abajo y así una tras otra. Por que esto, pues bien, por que en alguna paret debes guardar los datos ingresados por que si solo ingresaras datos directo al combo, al cerrar la hoja perderías todos los datos.
En este ejemplo los datos son referenciales en razón del rango desde A5 hacia abajo tantas filas como datos tengas es por eso que en la celda B1 debes poner la fórmula =CONTARA($A$1:$A$65530), para obtener el total de registros ingresados que determinaran el final del rango para los datos que tendrá el combo, de esta forma siempre tu combo solo tendrá los datos que ingresaste, ahora si te equivocaste en algún ingreso, solo debes realizar la modificacin directamente sobre el dato que ya esta guardado en tu lista (columna A), el combo se actualizara solo de igual forma si quieres eliminar un dato, solo elimina la fila que lo contiene.
Ahora si te molesta que se vea la columna A con todos los datos, solo ocultala y listo.
Bueno espero esto te sirva de guía.
Suerte
hey compadre muchas gracias
Quería preguntarte; por que hice la practica introduciendo el escript que me pasaste pero cuando voy a escribir un dato en el text me sale una ventana de error (NO SE ENCONTRÓ EL MÉTODO O EL DATO MIEMBRO) y me resalta esto en el script(ComboBox1. ListFillRange = "A5:" & d) y me pone en amarillo el titulo
Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
si le borro del escript la parte de :
    ComboBox1.ListFillRange = "A5:" & d
    TextBox1 = ""
    TextBox1.Activate
Al text me ingresa los datos bien al la "columna a" como tu me explicas pero no me lo activa al combobox los datos que voy ingresando ¿al combobox no se le pone algún código?
Perdona si te molesto
Y gracias por tu atención
Mmmm ya veo, por fa revisa si en la celda B1 tienes las formula =CONTARA($A:$A)
Si no esta esta fórmula en b1 et dará problemas justo esa linea de código. Lo que pasa es que en esa celda vamos contando el numero de registros ingresados, que nos servirá como tope para el rango de entrada de datos que debe considerar el combo.
¿Cod al combo?... bueno si necesitas programar algo sobre algún evento de ese control por cierto habría que poner código, pero para esta funcionalidad especifica que indicas no hace falta, pues el evento que gatilla el ingreso del dato es la tecla enter sobre el text
el cod aquí lo pruebo y funciona OK ingrese 60 registros a la lista y ok
tu puedes ingresar alguno o se te cae a la primera.?
Si deseas enviame tu mail por mensaje privado y te envío la hoja de ejemplo que realize
Bye
Bueno listo
Mi correo es johanjose0818arrobahotmail.com
OK
te envíe el archivo "Prueba.xls"
Bye

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas