Usuário com melhor resposta
VBA - Cadastro por formulário com condições de salvar em respectiva planilha

Pergunta
-
Galera, por gentileza
Consegui criar um formulário para cadastro dos trabalhos aqui da empresa. Porém, adicionei uma Caixa de Combinação como "status" do trabalho, e preciso que, como uma condição, ela seja salva em outra planilha (aba), de modo que eu não precise criar filtros nem Tabela Dinâmica. Preciso também do botão Pesquisar com uma Caixa de Listagem que mostre os trabalhos conforme algum campo preenchido. Por opções de busca, seja por código ou descrição do trabalho. Já pesquisei em diversos lugares mas até então não consegui.
Obrigado
Respostas
-
Veja o módulo TRABALHOS:
nele você indica onde quer salvar o arquivo, no seu caso você colocou assim Sheets("Planilha"). Então basta fazer uma variável pra pegar o valor da combobox e colocar no lugar do texto "Planilha", veja como ficou:
Sub cadastrotrabalho() linha = 2 y = frm_cadastro.ComboBox_Fase 'pega info do combobox Do Until Sheets(y).Cells(linha, 1) = "" linha = linha + 1 Loop Sheets(y).Cells(linha, 1) = frm_cadastro.txt_Editora.Text Sheets(y).Cells(linha, 2) = frm_cadastro.txt_Codigo.Text Sheets(y).Cells(linha, 3) = frm_cadastro.txt_NOPI.Text Sheets(y).Cells(linha, 4) = frm_cadastro.txt_Titulo.Text Sheets(y).Cells(linha, 5) = frm_cadastro.txt_tal.Text Sheets(y).Cells(linha, 6) = frm_cadastro.txt_pagal.Text Sheets(y).Cells(linha, 7) = frm_cadastro.txt_tme.Text Sheets(y).Cells(linha, 8) = frm_cadastro.txt_pagme.Text Sheets(y).Cells(linha, 9) = frm_cadastro.txt_Data.Text Sheets(y).Cells(linha, 10) = frm_cadastro.txt_Prazo.Text Sheets(y).Cells(linha, 11) = frm_cadastro.ComboBox_Fase.Text Sheets(y).Cells(linha, 12) = frm_cadastro.txt_OBS.Text MsgBox ("Cadastrado com Sucesso") limpacadastro End Sub
Dê uma olhada nas suas planilhas, algumas faltam colunas e outras está com a ordem diferente da planilha "Planilha".
Falou!
- Marcado como Resposta AlisonM's quinta-feira, 6 de março de 2014 16:38
Todas as Respostas
-
-
-
Vamos por partes
"Porém, adicionei uma Caixa de Combinação como "status" do trabalho, e preciso que, como uma condição, ela seja salva em outra planilha (aba), de modo que eu não precise criar filtros nem Tabela Dinâmica."
Ele vai salvar na planilha "Planilha" e mais em alguma da condição ou só na planilha da condição?
"Preciso também do botão Pesquisar com uma Caixa de Listagem que mostre os trabalhos conforme algum campo preenchido"
Isso aqui dá um bom trabalho, você fez seu código utilizando os vídeos do Renam?
Parece iguais aos que ele ensina. Se for me avise!
-
Se vc visualizar o formulário notará uma combobox com os seguintes valores:
PLANILHA, OBRAS PRONTAS, PRONTAS INDIGO, PROVA, EMENDA, REVISÃO, LIBERADO COM PASTA E LIBERADO SEM PASTA, que são as planilhas (plan1, plan2....)
Quero que, ao incluir um novo cadastro, ele seja salvo na respectiva planilha selecionado por essa combobox____________________________________________________________________
Não criei a caixa de listagem, mas tenho a intenção de faze-la.
Minha intenção é preencher qualquer campo (EDITORA ou CÓDIGO ou NOPI ou TÍTULO e até mesmo pela FASE) e ao clicar no botão PESQUISAR seja relacionada na cx lista, e, se tudo der certo, até mesmo um botão EDITAR para alterar a FASE do trabalho____________________________________________________
Sou leigo com vba e programação. Tudo que aprendi foi criando esse formulário com vídeos no youtube e tutoriais. Não me lembro do Renan, em específico.
muito obrigado -
Isso eu havia percebido já, mas é que achei que teria uma única planilha com todas as informações, mas tudo bem, isso é fácil de resolver. Assim que fizer esta correção eu posto e depois vemos a pesquisa.
o problema vai ser fazer uma listbox que faça pesquisa em mais de uma planilha.
(O Renam faz vídeos no youtube o canal acho que chama Lógica VBA, ele tem alguns vídeos (Aula 30 a 32) sobre criar filtro e listbox juntos, mas não sei se vai rodar de boa em mais de uma planilha.)
-
Entendi, você pensou que os cadastros ficariam numa única planilha como banco de dados.
Quanto a pesquisa em listbox eu ainda não parei para assistir aos vídeos e cria-lá. Por favor, pode desconsiderá-la.
Se puder me ajudar na questão da combobox em guiar a planilha a ser adicionada já resolverá o meu maior problema, porque eu já estou a um tempo considerável tentando pesquisar uma solução, até então sem sucesso.
Muito obrigado
-
Veja o módulo TRABALHOS:
nele você indica onde quer salvar o arquivo, no seu caso você colocou assim Sheets("Planilha"). Então basta fazer uma variável pra pegar o valor da combobox e colocar no lugar do texto "Planilha", veja como ficou:
Sub cadastrotrabalho() linha = 2 y = frm_cadastro.ComboBox_Fase 'pega info do combobox Do Until Sheets(y).Cells(linha, 1) = "" linha = linha + 1 Loop Sheets(y).Cells(linha, 1) = frm_cadastro.txt_Editora.Text Sheets(y).Cells(linha, 2) = frm_cadastro.txt_Codigo.Text Sheets(y).Cells(linha, 3) = frm_cadastro.txt_NOPI.Text Sheets(y).Cells(linha, 4) = frm_cadastro.txt_Titulo.Text Sheets(y).Cells(linha, 5) = frm_cadastro.txt_tal.Text Sheets(y).Cells(linha, 6) = frm_cadastro.txt_pagal.Text Sheets(y).Cells(linha, 7) = frm_cadastro.txt_tme.Text Sheets(y).Cells(linha, 8) = frm_cadastro.txt_pagme.Text Sheets(y).Cells(linha, 9) = frm_cadastro.txt_Data.Text Sheets(y).Cells(linha, 10) = frm_cadastro.txt_Prazo.Text Sheets(y).Cells(linha, 11) = frm_cadastro.ComboBox_Fase.Text Sheets(y).Cells(linha, 12) = frm_cadastro.txt_OBS.Text MsgBox ("Cadastrado com Sucesso") limpacadastro End Sub
Dê uma olhada nas suas planilhas, algumas faltam colunas e outras está com a ordem diferente da planilha "Planilha".
Falou!
- Marcado como Resposta AlisonM's quinta-feira, 6 de março de 2014 16:38
-