Aprenda como criar um formulário VBA com cadastro Excel passo-a-passo com imagem e grid.
Criar Formulário VBA
No Excel é possível criar formulários utilizando código VBA.
Para isso a primeira parte é habilitar a guia desenvolvedor, pra isso clique neste artigo e veja passo-a-passo como fazer: Habilitar Guia Desenvolvedor.
Tabela de Dados do Formulário
No nosso exemplo usamos uma tabela Excel aonde os dados dos formulários são salvos.
Como podemos ver temos os seguintes campos:
- Seq.: Código sequencial autoimático.
- Código: Código interno do produto.
- Produto: Nome do produto.
- Categoria: Descrição da categoria.
- Fabricante: Nome do fabricante.
- Descrição: Descrição completa do produto.
- Foto: Caminho completo da imagem do produto.
Formulário VBA Excel com Cadastro Excel
No nosso exemplo temos o cadastro abaixo com os campos que temos na nossa tabela, imagem do formulário e também a grid, que é uma tabela dentro do formulário e que exibe os dados que estão no Excel.
O formulário tem os botões e funcionalidades:
- Novo: Limpa todos os campos do formulário Excel.
- Excluir: Exclui a linha da tabela do Excel
- Salvar: Salva os dados do formulário na tabela, seja como inclusão ou como alteração de dados.
- Imagem: Imagem carregada à partir de um local no computador, bastando clicar no botão imagem e selecionar a mesma.
- Grid: Tabela no formulário à partir da tabela de cadastro de Produtos no Excel.
O formulário é acionado no momento em que clica duas vezes na tabela do Excel, é carregado automaticamente o formulário com os dados da linha selecionada.
Código do Formulário VBA Excel
Para a criação das funcionalidades do formulário utilizamos os seguintes códigos VBA, ele é detalhado também no vídeo passo-a-passo.
Global lLinha As Long
Global lstrImagem As String
Public Sub lsCarregarImagem()
Dim fd As FileDialog
Set fd = Application.FileDialog(msoFileDialogFilePicker)
'Configurar o FileDialog para selecionar arquivos com imagem
With fd
.Title = "Selecione uma imagem"
.Filters.Clear
.Filters.Add "Imagens", "*.jpg, *.jpeg, *.gif, *.bmp"
.AllowMultiSelect = False
'Exibir o diálogo e carregar a imagem selecionada
If .Show = -1 Then
frmProduto.imgFoto.Picture = LoadPicture(.SelectedItems(1))
lstrImagem = .SelectedItems(1)
End If
End With
End Sub
Public Sub lsExcluir()
Produtos.Cells(lLinha, 1).EntireRow.Delete
lsNovo
MsgBox "Item Excluído!"
End Sub
Public Sub lsNovo()
With frmProduto
.lblSeq.Caption = Produtos.Cells(Produtos.Cells(Produtos.Rows.Count, 2).End(xlUp).Row, 2).Value + 1
.txtCodigo.Value = ""
.txtProduto.Value = ""
.txtCategoria.Value = ""
.txtFabricante.Value = ""
.txtDescricao.Value = ""
.imgFoto.Picture = LoadPicture("")
End With
lLinha = Produtos.Cells(Produtos.Rows.Count, 2).End(xlUp).Row + 1
End Sub
Public Sub lsSalvar()
'Limpa a lista de produtos no formulário
frmProduto.listProdutos.RowSource = ""
With Produtos
.Cells(lLinha, 3).Value = UCase(frmProduto.txtCodigo.Value)
.Cells(lLinha, 4).Value = UCase(frmProduto.txtProduto.Value)
.Cells(lLinha, 5).Value = UCase(frmProduto.txtCategoria.Value)
.Cells(lLinha, 6).Value = UCase(frmProduto.txtFabricante.Value)
.Cells(lLinha, 7).Value = UCase(frmProduto.txtDescricao.Value)
.Cells(lLinha, 8).Value = UCase(lstrImagem)
End With
frmProduto.listProdutos.RowSource = "tProduto"
MsgBox "Item Salvo!"
End Sub
Public Sub lsCarregar()
On Error Resume Next
With Produtos
frmProduto.lblSeq.Caption = .Cells(lLinha, 2).Value
frmProduto.txtCodigo.Text = .Cells(lLinha, 3).Value
frmProduto.txtProduto.Text = .Cells(lLinha, 4).Value
frmProduto.txtCategoria.Text = .Cells(lLinha, 5).Value
frmProduto.txtFabricante.Text = .Cells(lLinha, 6).Value
frmProduto.txtDescricao.Text = .Cells(lLinha, 7).Value
frmProduto.imgFoto.Picture = LoadPicture("")
frmProduto.imgFoto.Picture = LoadPicture(.Cells(lLinha, 8).Value)
End With
frmProduto.Show
End Sub
Com isso temos o código completo do VBA que faz o cadastramento, carregamento da grid e também o carregamento das imagens.
Download da Planilha Formulário VBA com Cadastro Excel
Para realizar o download desta planilha de exemplo clique no botão abaixo