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.