Formulário VBA Excel Inserir Alterar Excluir e Foto
Especialista em Excel

Neste artigo você aprenderá como criar um formulário VBA no Excel com foto e com inserir ,alterar, excluir no Excel.
Criar Tabela de Dados do Cadastro VBA
O primeiro passo é criarmos uma tabela no Excel.
Nela iremos colocar os dados à partir do formulário.

Coloque um cabeçalho com os campos que deseja no formulário e depois clique em Inserir->Tabela.
A lista será convertida em formato de tabela, como temos acima.
No nosso exemplo do projeto temos os campos:
- Nome
- Matrícula
- Cidade
- Endereço
- Fone
- Foto
Criando o Formulário VBA
Agora iremos criar um formulário VBA, para isso pressione ALT+F12 ou senão clique na guia Desenvolvedor e em Visual Basic.
Na tela do VBE clique em Inserir->Formulário e arraste para redimensionar o formulário conforme temos abaixo.

Clique no botão abaixo e desenhe no formulário uma imagem conforme vemos abaixo.

Na Caixa de Ferramentas clique no botão e desenhe logo abaixo da imagem, é aonde iremos carregar os dados.

Altere a proprieda Text do botão e coloque o texto Carregar Imagem.
Na caixa de ferramentas adicione os componentes labels e altere os captions conforme os textos de cada campo e também adicione uma caixa de combinação ao lado do label.

Ficará conforme abaixo:

Desenhe as caixas de texto ao lado dos labels para criar o formulário com os campos conforme abaixo:

Clique na caixa de ferramentas e insira os botões Inserir, Gravar e Excluir conforme no formulário abaixo

Código do Formulário de Cadastro
Agora iremos inserir um módulo para colocarmos o código que será usado no formulário.
Clique em Inserir->Módulo e coloque o código abaixo:
Global gstrFoto As String
'Carrega os nomes
Public Sub lsCarregarLista()
Dim ltbCadastro As ListObject
Dim i As Long
frmCadastro.cmbNome.Clear
Set ltbCadastro = ActiveSheet.ListObjects("tCadastro")
For i = 1 To ltbCadastro.ListColumns(1).DataBodyRange.Rows.Count
frmCadastro.cmbNome.AddItem ltbCadastro.DataBodyRange(i, 1).Value
Next i
End Sub
'Grava na planilha
Public Sub lsDados()
On Error Resume Next
Cells(ActiveCell.Row, 2).Select
ActiveCell = UCase(frmCadastro.cmbNome.Value)
ActiveCell.Offset(0, 1).Value = UCase(frmCadastro.txtMatricula.Value)
ActiveCell.Offset(0, 2).Value = UCase(frmCadastro.txtCidade.Value)
ActiveCell.Offset(0, 3).Value = UCase(frmCadastro.txtEndereco.Value)
ActiveCell.Offset(0, 4).Value = UCase(frmCadastro.txtFone.Value)
ActiveCell.Offset(0, 5).Value = UCase(frmCadastro.txtEmail.Value)
ActiveCell.Offset(0, 6).Value = gstrFoto
lsCarregarLista
End Sub
'Carrega dados da planilha
Public Sub lsCarregarDados()
On Error Resume Next
Cells(ActiveCell.Row, 2).Select
frmCadastro.cmbNome.Value = ActiveCell.Value
frmCadastro.txtMatricula.Value = ActiveCell.Offset(0, 1).Value
frmCadastro.txtCidade.Value = ActiveCell.Offset(0, 2).Value
frmCadastro.txtEndereco.Value = ActiveCell.Offset(0, 3).Value
frmCadastro.txtFone.Value = ActiveCell.Offset(0, 4).Value
frmCadastro.txtEmail.Value = ActiveCell.Offset(0, 5).Value
frmCadastro.imgFoto.Picture = LoadPicture("")
frmCadastro.imgFoto.Picture = LoadPicture(ActiveCell.Offset(0, 6))
gstrFoto = ActiveCell.Offset(0, 6).Value
End Sub
'Limpa para inserir dados
Public Sub lsLimparDados()
On Error Resume Next
frmCadastro.cmbNome.Value = ""
frmCadastro.txtMatricula.Value = ""
frmCadastro.txtCidade.Value = ""
frmCadastro.txtEndereco.Value = ""
frmCadastro.txtFone.Value = ""
frmCadastro.txtEmail.Value = ""
frmCadastro.imgFoto.Picture = LoadPicture("")
End Sub
Public Sub lsForm()
frmCadastro.Show
End Sub
Após isso clique botão de Carregar Imagem no formulário e coloque o código abaixo:
Private Sub cmdFoto_Click()
On Error Resume Next
gstrFoto = Application.GetOpenFilename("Imagens jpg, *.jpg, Imagens bmp, *.bmp", 0, "Selecione a foto")
imgFoto = LoadPicture("")
imgFoto.Picture = LoadPicture(gstrFoto)
End Sub
Para Inserir dados no botão de inserir coloque o seguinte código:
Private Sub cmdInserir_Click()
Dim ltbCadastro As Object
Set ltbCadastro = ActiveSheet.ListObjects("tCadastro")
ltbCadastro.ListRows.Add AlwaysInsert:=True
ltbCadastro.DataBodyRange(ltbCadastro.ListColumns(1).DataBodyRange.Rows.Count, 1).Select
lsLimparDados
Set ltbCadastro = Nothing
End Sub
Para gravar os dados clique no botão gravar e coloque o seguinte código:
Private Sub cmdAlterar_Click()
lsDados
End Sub
E para excluir informações clique no botão Excluir e coloque o código abaixo:
Private Sub cmdExcluir_Click()
ActiveSheet.ListObjects("tCadastro").ListRows(ActiveCell.Row - 6).Delete
lsCarregarLista
End Sub
Colocar Imagens no Formulário VBA Excel
Para colocar as imagens nos botões e no formulário pegue as imagens da internet e cole na planilha primeiro.
Redimensione elas para o tamanho adequado e depois copie e volte ao VBE.
No formulário copie e cole a imagem no campo Picture das propriedades e cole.
Com isso teremos os dados no formulário.

Após isso pode chamar o formulário e já terá o cadastro aberto e funcionando no Excel.
Download Planilha de Formulário Avançado Inserir Alterar Excluir e Foto VBA Excel
Clique no botão abaixo para realizar o download do arquivo de exemplo:
Principais recursos
Confira o que este material oferece para você.
Perguntas frequentes
O material é realmente gratuito?
Sim. O acesso é gratuito e não exige cadastro.
Preciso ter o Excel instalado?
Recomendamos o Excel 2013 ou superior para todos os recursos.
Como faço para receber atualizações?
As atualizações são automáticas dentro da própria planilha.
Funciona no Excel do Mac?
Sim, funciona no Excel para Windows e para Mac.
Funciona no celular?
É possível visualizar no app do Excel; a edição completa é no computador.
Planilhas relacionadas
Planilha de Fluxo de Caixa
R$ 89,90
Controle de Estoque
R$ 69,90
Planilha Financeira Empresarial
R$ 79,90
Dashboard Financeiro no Excel
R$ 49,90




