VBA - Formulário de Registro e Pesquisa
Enviado: 20 Set 2018 às 20:08
por marcinhovn
Olá Pessoal,
Como não tenho muito conhecimento em VBA, estou desenvolvendo o meu projeto baseado em exemplos que vou encontrando na internet.
Esse arquivo que disponibilizo em anexo, é um controle de uma facção de costura onde lanço todas as informações desde o recebimento dos lotes para produzir até a entrega e o fechamento do mês de trabalho.
Tenho várias dúvidas e vou expôr algumas... se alguém puder me orientar ficarei grato.
1- Tenho 2 campos no meu formulário onde digito Datas, porém ao registrar na planilha não vai no formato de data;
2- O mesmo acontece com os 3 campos que são para valores;
3- Meu formulário tem um botão de pesquisa e ele funciona legal (a pesquisa se dá pelo número do lote), porém quero que ao visualizar no formulário um lote que foi pesquisado, eu possa fazer alguma alteração e registrar na mesma linha onde as informações já se encontram, e não inserir em uma nova linha.
Por enquanto, é isso que preciso.
Desde já, agradeço.
VBA - Formulário de Registro e Pesquisa
Enviado: 20 Set 2018 às 22:19
por ExcelFlex
Olá, boa noite.
Para gravar como data utilize o CDate(), a mesma coisa você faz com o valor numérico, usando CDbl(), exemplo:
Código: Selecionar todosActiveCell.Offset(0, 0).Value = CDate(txt_dt_rcbto_lote.Value) 'converte o valor de texto para data antes de gravar
ActiveCell.Offset(0, 15).Value = CDbl(txt_valor_c_bonus.Value) 'converte o valor de texto para double antes de gravar
Uma atenção especial que você precisa ter nestes casos é que quando o valor do textbox for vazio, estas funções podem retornar com erro, então é importante verificar antes de salvar, isso deve resolver o assunto 1 e 2.
Na sua terceira dúvida, você deve definir qual será a a linha que será alterada antes de armazenar os valores, fiz algumas modificações na sua planilha e estou enviando em anexo, coloquei comentários nas linhas que foram modificadas para você entender o que foi feito.
Re: VBA - Formulário de Registro e Pesquisa
Enviado: 24 Set 2018 às 16:38
por marcinhovn
Boa Tarde Marcus,
Ficaram muito boas as alterações que você fez, e o melhor, com os comentários vou aprendendo um pouco mais sobre VBA.
Como você mencionou, realmente apresenta erro nos campos de Data quando deixo em branco, porém, eu necessito preencher algumas informações em um segundo momento e outras em um terceiro momento.
Peço desculpas por não ter explicado melhor o funcionamento dessa planilha já em minha primeira postagem, por isso, segue abaixo...
1- Eu recebo um lote para costurar as peças e registro na planilha (área delimitada como "Recebimento do Lote" no formulário).
2- Ao término da produção de tal lote, eu envio novamente para o meu fornecedor registrando as informações pertinentes a devolução do mesmo (área delimitada como "Devolução do Lote" no formulário).
3- Ao encerrar o mês de trabalho, eu recebo do meu fornecedor um relatório com todos os lotes produzidos durante o mês e as quantidades apuradas por ele na conferência dos lotes. Essas informações eu também registro na planilha (área delimitada como "Fechamento" no formulário).
3.1- No fechamento do mês o fornecedor me paga um bônus pela qualidade dos lotes produzidos dentro do mês em questão, ou seja, se os meus lotes não tiveram rejeições pelo setor de inspeção de qualidade, ganho um adicional (6,0% por exemplo), por isso coloquei o campo "% Bônus" (digitado pelo usuário). O campo "Valor c/ Bônus" (calculado pela planilha) se refere ao "Valor" informado no registro inicial do lote + o "% Bônus" e o "Valor Total" (calculado pela planilha) seria o "Valor c/ Bônus" multiplicado pelo campo "Contagem Fornec."
Quando conseguirmos deixar em dia esses pontos, estarei explicando sobre o relatório que pretendo gerar.
Por enquanto, muito obrigado.
Marcio.
VBA - Formulário de Registro e Pesquisa
Enviado: 24 Set 2018 às 17:25
por ExcelFlex
Olá marcinhovn, fico satisfeito que os comentários no seu código tenham ajudado.
Se quiser falar direto comigo pode mandar um e-mail para
marcus@excelflex.com.br.
Abraços.