none
VBA - Cadastro por formulário com condições de salvar em respectiva planilha RRS feed

  • 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

    quarta-feira, 5 de março de 2014 12:44

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
    quinta-feira, 6 de março de 2014 16:10

Todas as Respostas

  • E onde está o seu formulário? É mais fácil de fazer em cima da sua pasta de trabalho, envie no Sendspace.com que lhe ajudo a fazer.
    quarta-feira, 5 de março de 2014 12:48
  • segue o link

    http://www.sendspace.com/file/2dvrsd

    login: 123
    senha: 123

    Desculpe a bagunça. Estou tentando resolver os lançamentos primeiro.

    Muito obrigado, desde já

    quinta-feira, 6 de março de 2014 12:02
  • 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!

    quinta-feira, 6 de março de 2014 12:46
  • 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

    quinta-feira, 6 de março de 2014 13:19
  • 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.)

    quinta-feira, 6 de março de 2014 13:38
  • 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

    quinta-feira, 6 de março de 2014 14:03
  • 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
    quinta-feira, 6 de março de 2014 16:10
  • PERFEITO

    A planilha teste que disponibilizei estava, realmente, uma bagunça.
    Já tinha revisto enquanto aguardava resposta e agora funcionou perfeitamente.

    Muitíssimo obrigado pela grande ajuda

    Grande abraço
    quinta-feira, 6 de março de 2014 16:41