Ir ao conteúdo
  • Cadastre-se
marlonrrosa

Controle de chave vba excel

Recommended Posts

Boa tarde a todos,

Comecei um projeto no execl em VBA para controlar as chaves do setor onde eu trabalho, pois tenho um claviculário sob minha responsabilidade.

Mas por falta de conhecimento e experiência, talvez eu tenha feito algo errado na organização do banco de dados, pois cheguei em um ponto que não consigo mais desenvolver ou ter ideia para continuar. Gostaria de um apoio.

Vou anexar a tabela aqui. CONTROLE DE CHAVE3.xlsm

Compartilhar este post


Link para o post
Compartilhar em outros sites

Continuo sem entender que informaçoes deve ir onde???

 

E como você pretende alimentar isso

 

Que abas quer preencher e como???

 

porque de forma geral basta preencher manualmente...

 

Se eu entendi basta você preencher a planilha BD_HISTORICO e assunto resolvido.

 

Não precisa preencher mais nada, pois ali tem todas as informações que interessa, quem pegou, quando pegou, e quando devolveu...

 

Isso é o que interessa a tilulo de informações, para o controle, 

 

Não vejo necessidade de nenhuma outra informação.

 

Por exemplo na planilha BD_HISTORICO você tem duas vezes  essas informações SARAM, GRAD, NOME E SECÃO, imagino eu que a chave A sempre vai pertencer ao mesmo saram, ao mesmo grad e a mesma seção, e tb quem retirar vai ser o mesmo que quem vai devolver, mesmo que seja outra pessoa a devolução vai ser em nome desta, afinal você vai cobrar a chave de quem retirou e nao de outra pessoa, logo essas informações em duplicidade nao faz sentido.
Imagino tb que as chaves devem ser devolvidas no mesmo dia, então entendo que tb nao precisa de duas datas, a hora é relevante, basta um campo status pra você colocar um ok ou devolido.

Olhando rapidamente a planilha a unica tabela necessaria alem do menu é a aba BD_CONTROL, com a apenas mais uma coluna. pra marcar que foi devolvida a chave naquele dia.

 

As outras BD Historico e BD Autoriza, não sao necessarias mas pode deixar se quiser, eu nao deixaria. 

 

Sendo assim ainda nao entedi bem seu pensamento no momento da criação da planilha.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi o motivo de você não ter entendido. Como diz o titulo do tópico, "Controle de chave vba excel", você provavelmente não deve ter visto que existe varios userforms por "trás" de todas as tabelas. Minhas dúvidas estão no VBA.

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Realmente nao tinha visto mas continuo com a mesma ideia, tudo que você tem que fazer com os formularios são atendidos com a tabela que disse.

 

Se eu entendi você precisa escrever os codigos para cada formulario???

 

É isso???

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Meu problema está no histórico. Quando coloco a devolução ele está colocando na linha vazia e não na linha do lado da chave que está devolvendo. Entendeu? A princípio é só isso. O resto eu consigo ajeitar. Se tu conseguir brilhar um código aí fico muito feliz ehhehehehe abraços obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Neste caso é bem simples, crie uma combobox no seu formulario de devolução que vai ser carregada com a lista das chaves, de saida, neste caso basta fazer um loop que localize os dados e gravar na coluna  em questao. 

 

O loop é algo mais ou menos assim:

 

Do while activecell <> ""

 

if activecell.value = combobox1.value then

 

'aqui você carrega os demais dados nas textbox com os dados ja gravados

 

preenche os dados que faltarem e grava

 

end if

 

loop

 

 

Esse é um caminho.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Preciso que voce faça um teste.

Faz a saída de uma chave qualquer (exemplo a 01), até ai ok, depois faça outra saída, pode ser a chave 05...

depois disso tente ir em devolução e coloque a devolução da 2ª chave (no caso a 05). O que está acontecendo é q ele ao invés de colocar a devolução da chave 05 ao lado da 05 não... ele está colocando nas colunas vazias, no caso iria registrar a devolução da 05 ao lado da 01... Eu gostaria q ele colocasse do lado da 05....

Obrigado pelo apoio.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu entendi o seu problema quando você faz a devolução preenche na ultima linha vazia, e nao na linha correspondente, isso eu entendi e a correção eu coloquei na postagem anterior.

 

você entendeu o que expliquei pra fazer funcionar???

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

então preenche algumas saidas porque nao consegui preencher por conta do codigo saram 

 

Poste novamente o arquivo com dados de saida e informe o codigo que precisa ser corrigido.

 

Inclusive como é o atual funcionamento da planilha?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou explicar mais detalhadamente. As chaves podem ir e voltar com qualquer um, isso é o de menos. Unica coisa que eu preciso é que na hora de devolver sendo ou nao a mesma pessoa que pegou a chave, clicando em OK ela preencha o lado do numero da chave que está sendo devolvida onde o numero dela está na coluna G da aba BD_HISTORICO. Os dados serão inseridos a partir da coluna H até a M, conforme os textbox do userform DEVOLUCAO.

Creio eu q o problema chave se encontra no botão OK.

Vou anexar a planilha como você me pediu, já estão os dados inseridos, você precisa apenas acompanhar a aba BD_HISTORICO enquanto usa o userform DEVOLUCAO. Tente começar devolvendo a chave 02 para voce entender o bug.

Cópia de CONTROLE DE CHAVE.xlsm

Compartilhar este post


Link para o post
Compartilhar em outros sites

@marlonrrosa olhei seu código e está realmente complicado de entender o que você escrveu lá. 

 

Entendendo:

 

1 - O botao Ok tem objetivo de inserir as nformações na aba historico, certo? E o que acontece é que nao insere?

 

2 - Qual a função de BD_Control? apagar o que estava la temporariamente?

 

As vzs não é necessário complicar tanto

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Meu objetivo não era complicar tanto, mas como sou novo nessa área ficou assim. O BD_Control seria temporário mesmo, só pra quando eu tentar retirar a mesma chave o sistema não autorizar pois já está fora. Claro se tiver uma ideia melhor estou aberto para opiniões. E  no caso do botão OK, ele funciona mas não como eu gostaria, pois ele está jogando os dados sempre na linha vazia e não ao lado do numero da chave que está sendo devolvida...

Aguardo respostas. Obrigado!

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ao apertar o botão OK gostaria que os dados das textbox do formulário DEVOLUCAO fossem lançados no BD_HISTORICO mas nos seus devido lugares... Entendeu? ehehe

 

O numero que estiver no CHAVEbox seria pesquisado quando apertasse OK e lançaria ao lado desse numero todos os dados das textbox do userform.

Compartilhar este post


Link para o post
Compartilhar em outros sites
13 horas atrás, marlonrrosa disse:

 

O numero que estiver no CHAVEbox seria pesquisado quando apertasse OK e lançaria ao lado desse numero todos os dados das textbox do userform.

 

 

Experimente:

 

no código Private Sub OKbotao_Click substitua estas linhas

   

 Dim punha As Integer
    punha = Plan5.Range("H65536").End(xlUp).Offset(1, 0).Row
    Plan5.Range("H" & punha).Value = SARAMbox
    Plan5.Range("I" & punha).Value = GRADbox.Text
    Plan5.Range("J" & punha).Value = GUERRAbox.Text
    Plan5.Range("K" & punha).Value = SECAObox.Text
    Plan5.Range("L" & punha).Value = DATAbox.Text
    Plan5.Range("M" & punha).Value = HORAbox.Text

 

por estas
   

 With Sheets("BD_HISTORICO")
       .Range("H" & Rng9.Row).Value = SARAMbox
       .Range("I" & Rng9.Row).Value = GRADbox.Text
       .Range("J" & Rng9.Row).Value = GUERRAbox.Text
       .Range("K" & Rng9.Row).Value = SECAObox.Text
       .Range("L" & Rng9.Row).Value = DATAbox.Text
       .Range("M" & Rng9.Row).Value = HORAbox.Text
    End With

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola marlonrrosa, eu fiz uma bagunça com seus códigos

Eu observei que você esta fazendo a busca por o número da chave

Fazendo uso deste comando:

'Chaves = CHAVEbox.Value

 'Set Rng9 = Sheets("BD_HISTORICO").Range("G:G").Find(Chaves)

 

O problema é que no Histórico, pode conter duas ou mais vezes a chave número 01 ou 02 03 e vai

 então quando é feita a busca, o comando vai encontrar o chave na primeira posição

A busca deve ser feita por um código único

 

Acionei um botão com um código, espero ter ajudado

Copia de CONTROLE DE CHAVE1.xlsm

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×