Botón ComboxBox

Resulta que a través de este botón, yo extraigo unos registros de una tabla, y los llevo a un campo definido. Pero necesito colocar más registros. Como lo hago sin reemplazar el anterior.
Fegoal, de antemano gracias. Y espero tu respuesta.

1 respuesta

Respuesta
1
La pregunta que me hago es: ¿Dónde quieres colocar más registros?
Puede ser que necesites *agregar* un dato nuevo a continuación del último que hayas puesto en tu campo definido.
Si este fuera tu pedido, el siguiente código dejará el valor seleccionado del combo box y lo pegará al final de tu lista:
Sub SelDato()
'...
' puede haber instrucciones previas tuyas
'definicion de variables
Dim V_Data As Variant
'toma dato a llevar
V_Data = <ingresa aquí tu propia instrucción para elegir un dato del ComboBox>
'identifica ultimo registro en base
Sheets("Hoja1").Select
Range("B3").Select
Selection.End(xlDown).Select
'se ubica en el siguiente celda inferior
ActiveCell.Offset(1).Select
'Pega el valor seleccionado del ComboBox
ActiveCell.Value = V_Data
End Sub
----
Cierra el editor y graba el archivo.
Esta macro contiene explicaciones de lo que está realizando en cada paso.
Cada vez que se ejecuta, agrega un registro a la base valor calculado. Además de los anteriores que ya tenías.
Obviamente, tuve que asumir que:
- V_Data es el nombre de la variable que aloja la selección hecha a través del Combobox
- La base de datos donde dejas este dato está en la hoja "Hoja1" y que empieza en la celda B3.
No debe haber espacios intermedios en esta lista
Puedes variar, claro está, estos datos modificándolos dentro de la macro.
---
La otra alternativa -y mi duda- es que quieras agregar más registros a seleccionar en el ComboBox.
Si así fuera, sólo debes redefinir el rango de donde toma los datos ese control, o mejor definir un nombre de ese rango que se expanda a medida que se agreguen datos.
De todos modos, creo que tu pregunta apuntaba a lo que hace la macro provista.
En todo caso, puedes volver a preguntarme.
Buen fin de semana!
Fernando
Fernando, buenas tardes,, gracias por la respuesta, pero si quiero un poco de ampliación,, te anexo un pequeño ejemplo.
Private Sub ComboBox1_Change()
End Sub
Así aparece el botón programado, cuando lo edito en Vb, y lo que yo quiero es programarlo de tal forma, que cuando Yo digite dentro del ComboBox, en Excel para pedirle un articulo este me lo ubique en la celda A9, por ejemplo,, y ha continuación de este,, YO PUEDA SEGUIR colocando más y más artículos, claro esta extraídos de una lista,, que ya tiene definida el ComboBox.
Fernando mil gracias y disculpe la molestia. Estaré atento a su respuesta, en verdad la necesito
Francamente, en tu caso evitaría usar el combo box ya que demandaría alguna programación que, po lo que veo, no existe en tu caso.
MS Excel cuenta con una herramienta ya desarrollada que hace lo que quieres sin escribir una sola línea de VB. Se llama "Validación"
Elige la celda A9 y clickea en "Datos" | "Validación...". En la ficha "Configuración", selecciona del menú descolgable bajo "Permitir" la opción "Lista". Más abajo, te permitirá indicar el rango donde está tu lista de opciones (puede ser un nombre de rango definido previamente). Asegúrate que esté tildada la casilla de "Celda con Lista desplegable" (suele estarlo normalmente). Un par de solapas más te permitirán, si quieres, asignarle mensajes al usuario para que seleccione los datos o mensajes de error personalizados.
Click en Aceptar para activar esta función en esa celda.
Lo bueno es que luego simplemente tienes que copiar esta celda a todas aquellas donde quieres que se efectúe esa selección, tal como solicitaste.
Esta lista sólo aparece si seleccionas la celda donde debes ingresar el dato.
Esto debería resolver tu pregunta. Si así fuera, te agradeceré un comentario y finalizarla.
Si no, preguntame de nuevo.
Un abrazo!
Fernando
Fernando, nuevamente gracias. En verdad quiero decirte que la opción que me ofreces con una validación es también lógica, pero en verdad se busca utilizarla con el Botón, ya que ofrece al usuario una rápida ubicación en la lista de un artículo. Porque yo al digitar un primer carácter de un artículo este me va ha desplegar otos más. De todas formas me gustaría que me coloboraras, con esta opción,, en verdad es muy practica y familiar al usuario.
Fernando, espero no molestar demasiado,, pero como te dije, es de buen uso... Nuevamente gracias y disculpe la molestia.
Luis Gonzaga (Lugo)
Veamos:
Puedes crear dos tipos distintos de ComboBox o Listas desplegables:
Uno desde la barra de herramientas de "Formularios" y otro desde la de "Controles".
En apariencia son similares pero cambian en su funcionamiento.
El primero es más simple y permite asociar una lista al botón y la selcción es dejada en una *única* celda. Si utilizaras este deberías replicar el botón tantas veces como celdas quieras completar y asociarlos uno por uno. Esto es, claramente, menos práctico que la lista de validación que te había propuesto.
Lo que queda es utilizar el ComboBox de la barra de "Controles" que demandará algo de programación.
En principio, asigna un nombre al rango de donde se tomarán los datos a elegir.
Dibuja el Combobox, Click con el botón derecho sobre él y elige la opción "Propiedades"
Busca la categoría "ListFillRange" e ingresa, a su derecha, el nombre del rango que definiste.
Puedes usar este código asociado a tu botón:
Private Sub ComboBox1_Change()
ActiveCell.Value = ComboBox1.Value
ActiveCell.Select
End Sub
Esto dejará tu selección en la celda que estuviera activa cuando hagas click en la lista del ComboBox.
Dime luego si esto te sirvió
Un abrazo
Fernando
pd: No entendí muy bien eso de: "... me gustaría que me coloboraras(?), con esta opción,, en verdad ..."
Gracias,, lo estoy acomodando con el control, en cuanto a tu pd:, fue un pequeño lapsu.
Gracias, espero seguir contando con su colaboración. Mucha suerte, y éxitos.

Añade tu respuesta

Haz clic para o