Inserção de dados numa folha (no exemplo denominada "DADOS") através de um formulário:
Procedimento na folha:
Definir o nome "Dados" para a tabela (através de Insert>Name>Define), com a Referência
=OFFSET(Dados!$A$1;0;0;COUNTA(Dados!$A:$A);2)
Procedimentos para o formulário:
Procedimentos a usar:
Private Sub CommandButton1_Click() ' Refere-se ao Botão do Formulário "ADICIONA"
Dim IntNext As Integer
'Conta as linhas preenchidas existentes na grelha e adiciona 1
IntNext = Range("Dados").Rows.Count + 1
'Envio dos valores inseridos nos campos para a grelha
Range("A" & IntNext) = Numero.Value
Range("B" & IntNext) = Data.Value
Range("C" & IntNext) = Nome.Value
'Para limpar os campos do Userform, por forma a receber novos dados
Numero = ""
Data = ""
Nome = ""
' Volta a chamar o procedimento para contar o número de linhas
Call NextNumero
'Coloca o foco no campo Data
Data.SetFocus
End Sub
Private Sub UserForm_Initialize()
Call NextNumero
End Sub
Private Sub NextNumero()
Numero = Range("Dados").Rows.Count
End Sub
NOTA: As TextBox1, 2 e 3 têm que alterar o nome para: Numero,Data e Nome, respectivamente.