Cargar una tabla desde un combobox en un formulario VBA de excel 2010

Tengo un combobox armado en un formulario de VBA en excel 2010.

El listado que se despliega ya está establecido a través de la fórmula en RowSource = "Hoja1!B1:B10", pero no sé como programar el botón de Guardar para que luego la selección se guarde en una tabla.

Si me pueden ayudar.

1 respuesta

Respuesta
1

Para pasar el dato del combo a la hoja, puede ser así, este es un ejemplo, tienes que adaptarlo a tus datos:

sheets("Hoja1").range("A5") = combobox1

Hola Dante, gracias por tu respuesta.

El problema que tengo es en el mismo archivo que vos me trabajaste, el combobox está dentro de un grupo. Dónde debo poner en el código esta acción considerando que está dentro del grupo?

Desde ya, muchas gracias.

Marisa

Pero no encuentro en cuál formulario está el combo, solamente veo textbox.

Hola, el combobox está en un formulario que se llama "CuestionarioNeonatal"

Muchas gracias

Agrega, antes del msgbox, el siguiente al código al BotonGrabarDatos_Click

'Edad gestacional
h1.Cells(uf, "AI") = ComboBox2
'Tipo de parto
h1.Cells(uf, "AJ") = ComboBox3

Gracias por tu respuesta y perdona mi ignorancia, pero exactamente que MsgBox? 

Hay varios en la pagina y no entre que y que  pedazo de codigo va. 

Gracias nuevamente por tu respuesta. 

Marisa 

Solamente pon el código, en el formulario CuestionarioNeonatal, dentro de este botón

BotonGrabarDatos_Click

No se como agradecer tu ayuda.

Ya lo puse, pero me da error en la siguiente linea:

h1.Cells(uf, tx(i)) = Me.Controls("Textbox" & i)

Muchas gracias

Marisa

Pero esa línea no tiene que ver con los combobox

No, pero por que puede dar error?

A lo que me refiero es que ese error no corresponde a esta pregunta, tendrías que crear otra pregunta para que revise el formulario.

Pero te adelanto lo siguiente, el código ya está corregido para que funcione desde el textbox1 hasta el textbox10:

'columna de cada textbox

'columna de cada textbox
tx = Array("", "A", "B", "N", "V", "AG", "AH", "AK", "AL", "AN", "AO", "AQ")
'Pasa el valor del textbox a su columna (desde el textbox0 hasta el textbox12)
For i = 1 To 10
h1.Cells(uf, tx(i)) = Me.Controls("Textbox" & i)
Next

Esta parte del código significa que estamos creando una lista de datos (arreglo), la lista se ordena con un número interno que empieza en 0. Entonces, en esa lista, le estamos indicando que en la posición 0 se almacene un valor vacío "", en la posición 1 la letra "A", en la 2 una "B" y así sucesivamente.

Después hacemos un ciclo, que significa que empiece en el 1 y termine en el 10, entonces dice: que almacene en la hoja h1 en la fila(última fila), en la columna tx(i), como i es igual a 1 entonces la columna es la "A", entonces en la celda uf"A" te almacena el valor del textbox1; para el siguiente ciclo la fila (uf) y la columna "B", almacena el valor del textbox2 y así sucesivamente.

El error que te marca es porque no tienes un textbox0, también debes revisar los nombres de los textbox, ya que no tienes un textbox11, tienes uno que se llama textbox60.

Si no vas a tener los nombres de los textbox consecutivos (textbox1, texbox2, textbox3 ...), tendrás que poner una línea por cada textbox así:

h1.Cells(uf, "A") = TextBox1
h1.Cells(uf, "B") = TextBox2
h1.Cells(uf, "N") = TextBox3
h1.Cells(uf, "V") = TextBox4
H1. Cells(uf, "AQ") = TextBox60

Esto es un ejemplo deberás poner la columna que corresponda a cada textbox.

Muchísimas gracias, lo pruebo y te cuento por mail, así te cierro esta pregunta.

Cómo siempre, una solución a todos nosotros los inexpertos.

Un abrazo grande.

Marisa

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas