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.