Formulário VBA Excel Inserir Alterar Excluir e Foto

MR
Marcos Rieper

Especialista em Excel

02 de janeiro de 2023 Atualizado 08 de julho de 2026 4 min de leitura
Criar formulário vba Excel com foto

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.

formulário vba 1

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
  • E-mail
  • 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.

formulário vba 2

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

formulário vba 3

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

formulário vba 4

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.

formulário vba 5

Ficará conforme abaixo:

formulário vba 6

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

formulário vba 7

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

formulário vba 8

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.

formulário vba 9

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:

Download — baixe aqui: Formulário Avançado Inserir Alterar Excluir e Foto VBA Excel

Preencha seus dados para receber o link de download no seu e-mail.

Principais recursos

Confira o que este material oferece para você.

Organização por data e etapas
Classificação automática
Ranking e destaques
Fluxos e etapas automáticas
Dashboard com indicadores
Atualização automática por fórmulas

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

Planilha de Fluxo de Caixa

(1.327)

R$ 89,90

Controle de Estoque

Controle de Estoque

(962)

R$ 69,90

Planilha Financeira Empresarial

Planilha Financeira Empresarial

(1.254)

R$ 79,90

Dashboard Financeiro no Excel

Dashboard Financeiro no Excel

(689)

R$ 49,90

Continue lendo

Curso Excel Master — Básico ao Avançado, VBA, PowerPoint e mais

Receba conteúdos e novidades direto no seu e-mail

Dicas, tutoriais, planilhas gratuitas e muito mais.

Não enviamos spam. Cancele quando quiser.

Download imediato

Acesso na hora após a compra

Compra 100% segura

Seus dados protegidos com SSL

Acesso vitalício

Use para sempre, sem mensalidades

Suporte via WhatsApp

Atendimento rápido e humanizado