Olá galera, nesse post irei falar sobre o VBA, nele criaremos um formulário, no qual permite ao usuário digitar as informações no mesmo, e ser colocado na planilha do Excel.
Então, mãos a obra!
Iremos criar uma nova Macro, que vamos a chamar de cadastro.
(Para exibir a tela de macros, use Alt+F8, ou na guia Exibição>Macros)

O nosso próximo passo, é chamar o nosso formulário que contém os campos necessário para o cadastro, então, primeiramente criaremos o nosso formulário:
O desenho do formulário, será mais ou menos da seguinte maneira:

Agora, na folha do Excel, criaremos os campos no qual serão adicionados os dados do formulário, conforme será programado:

Agora, o próximo passo, é chamar a UserForm1 quando a macro for iniciada.
No Visual Basic, selecione o Module1, e na sub cadastro, adicione o comando Userform1.Show, ficando da seguinte maneira:
Sub cadastro()UserForm1.ShowEnd Sub
Agora chegou a hora de programar o formulário.
No evento initialize do nosso formulário, iremos programar da seguinte forma:
Private Sub UserForm_Initialize()' Apagamos todo o texto das TextboxtxtNome.Value = ""txtTelefone.Value = ""txtEndereco.Value = ""' adicionamos todos os itens da Combo cboCargoWith cboCargo.AddItem "Administração".AddItem "Secretaria".AddItem "Vendas".AddItem "Marketing".AddItem "Transporte"End With' deixamos a combo sem opção padrãocboCargo.Value = ""' colocamos o foco na txtNametxtName.SetFocusEnd Sub
*Lembre-se de verificar sempre o evento em que está programando.

Agora, o principal código do projeto, onde os dados serão colocados na tabela do Excel, de acordo com o que o usuário cadastrar no formulário, o código do botão OK, que chamei de cmdOK, fica da seguinte forma: (evento Click)
Private Sub cmdOK_Click()' ativa a planilha chamada 'Plan1' do ExcelActiveWorkbook.Sheets("Plan1").Activate' seleciona a celula A1Range("A1").Select' o codigo a seguir, faz com que seja feita a verificação das celulas vazias,' para ser colocado em sequencia de como foi programado, os campos que o usuario digitar' praticamente, este é o principal código do projeto!' o loop define a celula ativa, para os dados serem colocados em sequencia...DoIf IsEmpty(ActiveCell) = False ThenActiveCell.Offset(1, 0).SelectEnd IfLoop Until IsEmpty(ActiveCell) = TrueActiveCell.Value = txtNome.ValueActiveCell.Offset(0, 1) = txtEndereco.ValueActiveCell.Offset(0, 2) = txtTelefone.ValueActiveCell.Offset(0, 3) = cboCargo.ValueRange("A1").SelectEnd Sub
Agora, você pode testar seu projeto e ver o resultado:

Baixe este código, clicando aqui
muito bom cara, parabens pelo seu trabalho!
ResponderExcluirperfeito
Muito melhor usar uma base de dados do excel, eu gostei
ResponderExcluirOlá sou iniciante e gostaria de saber onde acho o evento initialize?
ResponderExcluirObrigado pela atenção e pelo belo post.
[ ]'s
Ac
Olá!
ResponderExcluirOs eventos são mostrados nos objetos inseridos dentro de um formulário.. quando você clica duas vezes em um CommandButton por exemplo você recebe:
Private Sub CommandButton1_Click()
End Sub
Na barra de cima da área de código, existem 2 caixas de opções, a que determina o objeto e a que determina o evento.
Você pode alterar um evento manualmente se preferir:
Private Sub UserForm_Initialize()
Espero ter ajudado!
Ok é claro que ajuda, mas resumindo preciso criar uma nova macro?
ResponderExcluirSim você vai criar uma macro chamada 'cadastro' e apenas alterar o evento do Formulário
ResponderExcluiroi, boa tarde, faço parte de uma organização, e stou tentando criar uma planilha de cadastro de associados, será que você não poderia me ajudar.... é uma planilha muito simples, entendo muito de excel, mas não sei nada de VBA....
ResponderExcluirOtimo tutorial, tem outros modelos mais avançados..
ResponderExcluir