Página 1 de 1

vba inserir dados em modo formulário

Enviado: 25 Jul 2018 às 20:15
por AlanBC
olá amigos... boa noite
tenho uma planilha onde cadastro para controle do estoque, venda e a movimentação do mês/ano, são informações como, tipo produto, dt compra, dt venda, vr. compra, vr. venda, tempo estoque.. (células A5 ate L). Como é usada por várias pessoa, acidentalmente, vez ou outra apagam informações da planilha. Preciso de um código vba/macro que permita inserir os dados em modo formulário (mesmo protegida por senha).
podem me ajudar neste caso??? já agradeço de montão... muito obrigado!!!
abraços.

Re: vba inserir dados em modo formulário

Enviado: 26 Jul 2018 às 19:34
por osvaldomp
Faça um teste inicial com os códigos abaixo para carregar o Formulário.

Rode primeiro este código. Se não carregar o Formulário e retornar erro, então exclua as linhas 1 a 3, portanto a linha da Tabela com cabeçalho passará da atual linha 4 para a linha 1, e aí rode o segundo código.
Retorne se algum deles funciona, pois me parece que depende da versão do Excel.
Código: Selecionar todos
Sub ComDatabase()
 Range("B4").CurrentRegion.Name = "database"
 ActiveSheet.ShowDataForm
End Sub
Código: Selecionar todos
Sub TabelaNaLinha1()
 ActiveSheet.ShowDataForm
End Sub

Re: vba inserir dados em modo formulário

Enviado: 26 Jul 2018 às 21:39
por AlanBC
opa... boa noite. e muito obrigado mais uma vez.
o codigo nao ta funcionando direitinho nao.
ambos os códigos pedem para desproteger a planilha para digitar e gravar via formulario.
falta ajustar somente isso aí... pra ficar 100%!
anexei um outro arquivo com os códigos pra checar.
vlw. obrigado.

Re: vba inserir dados em modo formulário

Enviado: 26 Jul 2018 às 22:37
por osvaldomp
Por ora somente responda objetivamente quanto aos resultados dos dois testes que eu comentei no post anterior.

Primeiro código, primeira situação ~~~> o Formulário carregou ou não carregou ? Se não carregou, qual a mensagem de erro?

Segundo código, segunda situação (após excluir as linhas 1:3) ~~~> o Formulário carregou ou não carregou? Se não carregou, qual a mensagem de erro?

No arquivo que você disponibilizou por último a única planilha só serve para testar a segunda situação.
Aqui eu já fiz os testes com os dois códigos que passei. O que eu preciso é dos seus resultados, por causa de possíveis diferenças nas versões, então não adianta postar arquivo pra eu testar.
Ainda, nada mude nos códigos que passei! Porque você alterou de B4 para A1 ???

Re: vba inserir dados em modo formulário

Enviado: 27 Jul 2018 às 15:21
por AlanBC
Ola... boa tarde.
desculpe minha falta de atenção.
segue os resultados:
1º cod. (com linhas 1, 2 e 3 do cabeçaho): da erro e nao carrega o formulario -> erro tempo de execucao '1004': nao pode usar este comando com planilha protegida...
2º cod. (sem as linhas 1, 2 e 3 do cabeçalho): apresentou 2 situações distintas
situação 1: ao abrir a planilha e habilitar macros, se for o Primeiro codigo a ser executado - > da erro e nao carrega o formulario -> erro tempo de execucao '1004': nao pode usar este comando com planilha protegida;
situação 2: executa-lo posteriormente a um outro codigo, abre normalmente o Formulario!
Espero ter sido claro. Desculpe anteriormente...
Aguardo. Obrigado.

Re: vba inserir dados em modo formulário

Enviado: 27 Jul 2018 às 22:00
por osvaldomp
Com base na sua resposta alterei o lay out da planilha e está funcionando pelo segundo código. Acrescentei a ele o comando para proteger a planilha, assim só é possível inserir dados via Formulário carregado pela macro.
Faça os testes e retorne se dessa forma estaria aceitável.

Re: vba inserir dados em modo formulário

Enviado: 28 Jul 2018 às 22:42
por AlanBC
Amigo, olha... muito obrigado por toda sua atenção dispensada a mim, suas tentativas e empenho pra me ajudar com este codigo,
eu gostaria muito de manter o layout original da minha planilha porque mantenho meu arquivo ano a ano e tenho outras de anos anteriores;
na vdd somente queria que o codigo carregasse o formulario com planilha protegida e inserisse os dados dentro da tabela em ordem crescente, sem pular linha em branco.
era somente isso que queria pra deixar mais interessante e intuitiva no ato da utilização. achava que podia ser mais simples e tomar menos tempo seu.
este ultimo codigo ta carregando normalmente o formulario com a planilha protegida mas ta ignorando linhas em branco, ta gravando na ultima linha da tabela, ele abre uma linha no final da tabela pra gravar os dados... deveria acompanhar a ordem crescente das linhas e inserir os dados nesta ordem, msm se tivessem linhas em branco abaixo da ultima preenchida.
meu amigo, muito obrigado. agradeço demais suas respostas e sua colaboração... nao vou mais tomar seu tempo nao.
ate aqui tive total atenção dos srs. muito obrigado msm. forte abraço.