Tópicos relacionados a códigos VBA, gravação de macros, etc.
Por APTLima 12 Jul 2019 às 16:03
Membro Novato
Mensagens: 6
Reputação: 0
#45523
Oi Pessoal, Boa tarde!
Estou com uma dúvida sobre VBA - Manipulação de Tabelas
Estou criando um formulário que registra o contato com o cliente, preciso que os dados sejam imputados em uma tabela.
E preciso que seja registrado o horário que iniciou e finalizou o imput dos dados.
No evento de inicializar, coloquei o código:
Private Sub UserForm_Initialize()
Dim Tabela As ListObject
Dim Nova_Linha As ListRow
Set Tabela = Planilha11.ListObjects("Registro")
Set Nova_Linha = Tabela.ListRows.Add
Nova_Linha.Range(1, 8).Value = Now() ‘Ele insere a linha da tabela e coloca o horário do imput'
End Sub

No evento para imputar os dados do formulário na tabela, tenho o código:
Private Sub CommandButton2_Click()
Dim Tabela As ListObject
Dim Nova_Linha As ListRow
Set Tabela = Planilha11.ListObjects("Registro")
Set Nova_Linha = Tabela.ListRows.Add
Nova_Linha.Range(1, 1) = ComboBox1.Text
Nova_Linha.Range(1, 2) = ComboBox2.Text
Nova_Linha.Range(1, 9).Value = Now()
MsgBox "Registro realizado com sucesso!"
End Sub
Eu preciso que os dados do formulário sejam imputados na mesma linha da tabela, o problema que no primeiro código ele insere uma linha e coloca o horário e no segundo código ele insere outra linha e imputa os dados, não consegui adaptar o código para inserir tudo na mesma linha.
Conseguen me ajudar nessa?
Obrigada!
Ana Paula
Por osvaldomp 12 Jul 2019 às 22:54
Membro 5 Estrelas
Mensagens: 1248
Reputação: 612
#45537
Experimente:
Código: Selecionar todosPrivate Sub CommandButton2_Click()
 Dim Tabela As ListObject, Nova_Linha As Long
  Set Tabela = Planilha11.ListObjects("Registro")
  Nova_Linha = Cells(Rows.Count, Tabela.Range.Cells(1, 1).Column).End(3).Row
  Tabela.Range(Nova_Linha, 1).Value = ComboBox1.Text
  Tabela.Range(Nova_Linha, 2).Value = ComboBox2.Text
  Tabela.Range(Nova_Linha, 9).Value = Now
  MsgBox "Registro realizado com sucesso!"
End Sub