Conheça a “Formação Excel VBA com Edivam Cabral”: onde até seu mouse vai ficar rindo enquanto você aprende a fazer magia com planilhas! Não perca a chance de transformar seus dados em verdadeiros bruxos da eficiência: https://edivamcabral.com.br/bundle_details/10
Descubra como criar um formulário de entrada de dados no Excel utilizando VBA, de uma forma tão simples que até seu cachorro poderia fazer isso… se ele soubesse programar! 🚀
Criar um formulário personalizado em Excel com VBA pode ser a salvação da lavoura quando se trata de organizar e gerenciar informações! Imagine só, enquanto você tenta domar aquelas tarefas repetitivas como um domador de leões, um formulário para cadastro de produtos surge como seu super-herói de capa (ou melhor, de células)! Neste artigo, vamos dar uma olhada em um exemplo prático: um formulário que não apenas coleta dados, mas também faz você se sentir um verdadeiro mestre das planilhas, com comandos VBA, controles e uma interface que seria a inveja de qualquer aplicativo!
Neste tutorial, você aprenderá:
- ✅ Como configurar o VBA no Excel.
- ✅ Criar um formulário personalizado.
- ✅ Inserir campos de entrada, botões e funcionalidades.
- ✅ A automação garantida que salva dados diretamente na planilha.
Ideal para iniciantes e profissionais que estão prontos para automatizar processos e alcançar novos níveis de produtividade! Assista até o final para dominar essa técnica e transformar suas planilhas de forma surpreendente!
Recursos do Formulário
Nosso formulário possui os seguintes recursos:
- Cadastro de produtos com ID, descrição, preço de custo, preço de venda e lucro.
- Controle de páginas para navegação entre os registros.
- Opção de adicionar, substituir ou remover imagens associadas aos produtos.
- Validação de campos obrigatórios.
- Botão para limpar os dados e iniciar um novo registro.
Estrutura do Código VBA
Abaixo, destacamos os principais procedimentos usados no código para gerenciar o formulário:
1. Salvando os Dados
A macro ProdutoSalvar
salva os dados do formulário na planilha de base no Excel, garantindo que o ID seja gerado automaticamente e as informações sejam transferidas para o banco de dados.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
Sub ProdutoSalvar() If Validar = False Then Exit Sub Dim lin As Long Call GerarId(lin) PlanBase.Range("A" & lin).Value = PlanForm.Range("J5").Value PlanBase.Range("B" & lin).Value = PlanForm.Range("H8").Value PlanBase.Range("C" & lin).Value = PlanForm.Range("H11").Value PlanBase.Range("D" & lin).Value = PlanForm.Range("N11").Value PlanBase.Range("E" & lin).Value = PlanForm.Range("H14").Value PlanBase.Range("F" & lin).Value = PlanForm.Range("N14").Value ' Salva a imagem na pasta "imagens" If PlanForm.Range("C15").Value <> Empty Then VBA.FileCopy PlanForm.Range("C15").Value, ThisWorkbook.Path & "/imagens/" & PlanForm.Range("J5").Value & ".png" End If MsgBox "Produto Salvo com Sucesso!", vbInformation, "VBA com Edivam Cabral" End Sub |
2. Validação dos Campos
A função Validar
verifica se todos os campos obrigatórios foram preenchidos corretamente. Ela emite mensagens de erro quando os campos estão vazios ou contêm dados inválidos.
1 2 3 4 5 6 7 8 9 10 11 12 |
Private Function Validar() As Boolean Validar = False If PlanForm.Range("H8").Value = Empty Then MsgBox "Por favor, digite a descrição do produto", vbCritical, "Erro de Validação" Exit Function End If If VBA.IsNumeric(PlanForm.Range("H11").Value) = False Then MsgBox "O Preço de Custo é inválido", vbCritical, "Erro de Validação" Exit Function End If Validar = True End Function |
3. Gerenciamento de Imagens no Excel com VBA
O formulário também permite adicionar, remover ou substituir imagens relacionadas ao produto cadastrado com VBA.
- Adicionar Foto:
A macroProdutoEscolherFoto
utiliza o seletor de arquivos para o usuário escolher uma imagem do produto.
1 2 3 4 5 6 7 8 9 10 |
Sub ProdutoEscolherFoto() Dim cx As FileDialog Set cx = Application.FileDialog(msoFileDialogOpen) cx.Filters.Add "Imagens", "*.png; *.jpg; *.jpeg" If cx.Show = True Then PlanForm.Shapes("foto").Fill.UserPicture cx.SelectedItems(1) MsgBox "Foto adicionada com sucesso", vbInformation End If End Sub |
- Remover Foto:
A rotinaProdutoRemoverFoto
exclui a imagem vinculada e retorna à imagem padrão.
1 2 3 4 5 6 7 8 9 10 |
Sub ProdutoRemoverFoto() Dim Foto As String Foto = ThisWorkbook.Path & "/imagens/" & PlanForm.Range("J5").Value & ".png" If VBA.Dir(Foto) <> Empty Then VBA.Kill Foto End If PlanForm.Shapes("foto").Fill.UserPicture ThisWorkbook.Path & "/imagens/padrao.png" MsgBox "Imagem removida com sucesso!" End Sub |
4. Paginação dos Registros com VBA no Excel
O formulário inclui botões para navegar entre os registros de produtos. O procedimento ProdutoPaginar
exibe o produto correspondente à página selecionada.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
Private Sub ProdutoPaginar() Dim lin As Long lin = PlanForm.Range("V3").Value + 1 PlanForm.Range("J5").Value = PlanBase.Range("A" & lin).Value PlanForm.Range("H8").Value = PlanBase.Range("B" & lin).Value ' Atualiza a imagem do produto Dim Foto As String Foto = ThisWorkbook.Path & "/imagens/" & PlanForm.Range("J5").Value & ".png" If VBA.Dir(Foto) <> Empty Then PlanForm.Shapes("foto").Fill.UserPicture Foto Else PlanForm.Shapes("foto").Fill.UserPicture ThisWorkbook.Path & "/imagens/padrao.png" End If End Sub |
5. Limpando o Formulário com Excel VBA
O botão “Novo” limpa os campos do formulário para cadastrar um novo produto, usando a macro ProdutoLimpar
.
1 2 3 4 5 6 |
Sub ProdutoLimpar() If MsgBox("Deseja limpar os dados?", vbYesNo + vbQuestion) = vbNo Then Exit Sub PlanForm.Range("H8:H14").ClearContents MsgBox "Formulário limpo!" End Sub |
Conclusão
Neste artigo “Como Criar um Formulário de Entrada de Dados no Excel com VBA” eu te mostro como o Excel pode ser transformado em um aplicativo dinâmico para gerenciar dados. Com uma interface gráfica amigável e recursos como validação de dados e navegação entre registros, você pode criar soluções robustas para necessidades específicas.
Se você gostou deste conteúdo, compartilhe e explore outros tutoriais de Excel VBA aqui no blog!
0 Comentários