ComboBox Keypress e transferência de dados do formulário de usuário do Excel para a tabela de planilhas

ComboBox Keypress e transferência de dados do formulário de usuário do Excel para a tabela de planilhas

Estou tentando criar um pequeno sistema de inventário utilizando excel, e gostaria de utilizar uma macro para adicionar um novo registro. Minha tabela e formulário de usuário estão em vigor, no entanto, tenho vários problemas.

A primeira é que não consigo "bloquear" minhas caixas de combinação. Tentei bloqueá-lo por meio de suas propriedades, mas o resultado é que agora não consigo selecionar um item da lista. (As caixas de combinação são pré-preenchidas). Tenho um botão na minha planilha (Adicionar Novo Registro) e ele contém um código:

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

E na minha combobox:

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

O código da minha combobox não funciona, e o que eu gostaria que acontecesse é bloqueá-lo para que nada possa ser digitado ou editado.

O segundo problema é que não sei como chamar minha tabela e inserir nela os dados do meu formulário de usuário. Eu tentei isso antes:

sheet1.table1.Lastrow = userform1.textbox1.value

mas obviamente não funciona :(

Espero que alguém possa me ajudar. Desde já, obrigado!

Responder1

Resolvi meu problema com estes 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 alguém possa achar isso útil.

informação relacionada