ComboBox Keypress y transferencia de datos desde el formulario de usuario de Excel a la tabla de hojas

ComboBox Keypress y transferencia de datos desde el formulario de usuario de Excel a la tabla de hojas

Estoy intentando crear un pequeño sistema de inventario usando Excel y me gustaría usar una macro para agregar un nuevo registro. Mi tabla y mi formulario de usuario están en su lugar, sin embargo, tengo varios problemas.

La primera es que no puedo "bloquear" mis cuadros combinados. Intenté bloquearlo a través de sus propiedades, sin embargo, el resultado es que ahora no puedo seleccionar un elemento de la lista. (Los cuadros combinados ya están completos). Tengo un botón dentro de mi hoja (Agregar Nuevo Registro) y contiene un código:

UserForm1.ComboBox1.List = Array("HO", "SI", "SV", "PTSF")
UserForm1.ComboBox2.List = Array("AP", "FU", "GE", "IT")
UserForm1.Show

Y en mi cuadro combinado:

Private Sub ComboBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii = 8 Or KeyAscii = 127 Then
KeyAscii = 0
Else
End If
end sub

El código de mi cuadro combinado no funciona y lo que me gustaría que sucediera es bloquearlo para que no se pueda escribir ni editar nada.

El segundo problema es que no sé cómo llamar a mi tabla e insertarle los datos en mi formulario de usuario. He probado esto antes:

sheet1.table1.Lastrow = userform1.textbox1.value

pero obviamente no funciona :(

Espero que alguien pueda ayudarme. ¡Gracias de antemano!

Respuesta1

Resolví mi problema con estos códigos:

Dim ws As Worksheet
Dim lo As ListObject
Dim lr As ListRow

Set ws = Sheets("HO Database")
Set lo = ws.ListObjects(1)
Set lr = lo.ListRows.Add

lr.Range(1, 1).Value = Me.ComboBox2.Value
lr.Range(1, 2).Value = Me.ComboBox1.Value
lr.Range(1, 3).Value = Me.TextBox9.Value
lr.Range(1, 4).Value = Me.TextBox1.Value
lr.Range(1, 5).Value = Me.TextBox2.Value
lr.Range(1, 6).Value = Me.TextBox3.Value
lr.Range(1, 7).Value = Me.TextBox4.Value
lr.Range(1, 8).Value = Me.TextBox5.Value
lr.Range(1, 9).Value = Me.TextBox6.Value
lr.Range(1, 10).Value = Me.TextBox7.Value
lr.Range(1, 11).Value = Me.TextBox8.Value

Espero que alguien pueda encontrar esto útil.

información relacionada