Notifications
Clear all

Problemas ao Inserir Dados em Planilha Através de Formulário

15 Posts
3 Usuários
0 Reactions
2,606 Visualizações
(@macabruz)
Posts: 52
Trusted Member
Topic starter
 

Bom dia pessoal! Tudo em ordem?

Gostaria de pedir humildemente a ajuda de vocês, que já dominam o excel e o VBA, em um "pequeno" projeto que preciso desenvolver.
Eu tenho algum conhecimento em Excel, mas em VBA eu não possuo nenhum conhecimento, então iniciei o projeto buscando informações em todos os cantos da internet e, buscando informações, encontrei esse forum.
Já desenvolvi uma parte do projeto, mas esbarrei em um detalhe que não achei resposta até agora.
Tenho um formulário que insere diversas informações em uma planilha. 90% das informações são inseridas sem problemas, mas alguns campos não são inseridos (Data, Hora de ìnicio, Hora de término e campos de Valores R$), e não sei porque este não são inseridos!! e é ai que eu preciso da ajuda de vocês!!
Se alguem puder dar uma olhada no meu projeto (que vai em anexo no link abaixo), vejam o Form Relatório_Técnico botão Registrar, que é onde estou trabalhando. Os demais botões eu pretendo ir fazendo na sequência.

https://rapidshare.com/files/1893047909/Relatórios_Suporte.rar

No aguardo.

Att,
Jorge.

 
Postado : 02/09/2012 1:07 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Olá seja bem vindo, Macabruz!!!!..o seu tópico está em desacordo com as regras, favor edita-lo

Por favor Leia os links abaixo, obrigado!!!

Nossas Regras
viewtopic.php?f=7&t=203

Marcar Tópico como Resolvido e Agradecimento
viewtopic.php?f=7&t=3784
Lembre se de usar nossa base de dados (Pesquisa) e a Biblioteca

Como Anexar Aquivos Compactados
viewtopic.php?f=7&t=3841

Abrir Novo Tópico
viewtopic.php?f=7&t=5317
Att ;)

 
Postado : 02/09/2012 1:18 pm
(@macabruz)
Posts: 52
Trusted Member
Topic starter
 

Alexandrevba,

Tentei editar o post irregular, mas não encontrei como editá-lo. Então segue uma resposta de acordo com as regras.

Apenas pra esclarecer, caso meu Nick Name e meu Nome não tenham feito isso, que eu sou um Homem.

Att,
Jorge.

 
Postado : 02/09/2012 1:46 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Seu título foi editada!!

Você tem vários formulários, é o Relatório_Comercial???

deixe mais detalhes do quer!!

Att

 
Postado : 02/09/2012 2:00 pm
(@macabruz)
Posts: 52
Trusted Member
Topic starter
 

Detalhes do Projeto:

Para explicar, deixe-me dizer que trabalho como Suporte Técnico em um certo tipo de máquinas, então, para cada visita que faço aos meus clientes eu preciso fazer relatórios onde constam as informações contidas no Form "Relatório_Técnico".

Gostaria de criar um banco de dados de todas as visitas, por isso criei o Form e estou tentando inserir todos os dados em uma planilha. A ideia é:

Preencher o Form "Relatório_Técnico" e clicar em registar. Isso registra todas as informações na planilha, para cada "Numero da Ficha" vai existir uma linha na planilha com as informações da visita (Planilha "Banco_de_Dados")
As informações do Cliente vão vir de uma outra planilha ("Dados dos Clientes"), ou seja, a ideia é digitar apenas o nome do cliente e todos os outros TextBox serem preenchidos automaticamente, menos os campos Contato e E-mail. (Essa parte do preenchimento automatico eu nem tentei implementar ainda..mas se puder ajudar..)
O maior problema que estou enfrentando agora é com os Campos - Data, Hora Inicio, Hora Término, Pedágio, Refeições, que não tão transferidos para a planilha após clicar em Registrar e o único que vai (Pedágio) não aparece no formato correto..em R$.

Após finalizar a programação do Relatório_Técnico, basicamente vou só copiar para o Relatório_Comercial, que é destinado a visitas onde o motivo principal é Reunião.

Também, estou com outras idéias que pretendo implementar pouco a pouco, que é a parte de pesquisa, onde, buscando por Número da Ficha ou por Técnico ou por cliente ele me mostar todos os resultados encontrados no Banco_De_Dados.

E finalizando, os botões Gerar Relatório, que vai buscar informações especificas em determinada linha do Banco de Dados para gerar uma outra WorkSheet.

Por Hora, gostaria de solucionar a questão da Data, Hora e valores em R$...e se possível uma pequena ajuda com a parte de Pesquisa.

Precisando de mais informações, favor me add no MSN...ai podemos conversar melhor. [email protected]

Obrigado pela ajuda.
Att,
Jorge.

 
Postado : 02/09/2012 2:53 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Jorge,
Básicamente dificuldade está na mameira como definiu a variavel Lin (objeto) e a maneira que a setou (ela recebe como valor o rotulo da linha Ficha)
então ao utilizar o offset, dependendo de onde estiver o cursor e que irão ser gravados os dados.
Tb o nome de campo data e hora estam incorretos.
Fiz uma alteração da meneira que julgo mais simples, vj se lhe atende.

 
Postado : 03/09/2012 6:41 am
(@macabruz)
Posts: 52
Trusted Member
Topic starter
 

Reinaldo,

Muito Obrigado pela ajuda! De fato você conseguiu me ajudar também na questão de pular linhas. Essa forma que eu havia feito foi a única que havia dado certo. Eu tinha tentado umas 4 codificações para procurar a primeira linha vazia mas não estava funcionando.

Eu já adicionei algumas linhas de código, então vou editar meu arquivo da forma que você fez.
Próximo passo é fazer a parte da pesquisa funcionar, pois vou depender dela para gerar os relatórios. Qualquer dúvida eu deixo aqui.

@Moderação - Provavelmente terei mais algumas dúvida, então peço que ainda não fechem o Tópico, por favor.

 
Postado : 03/09/2012 9:35 am
(@macabruz)
Posts: 52
Trusted Member
Topic starter
 

Pessoal, venho mais uma vez pedir um help.

Meu chefe me pediu uma apresentação disso para quarta-feira, e como esse não é meu trabalho não tive tempo para dedicar a pesquisa e programação (Cuido de manutenção de máquinas, não de programação... Não sei se vou conseguir corrigir algumas coisas e aplicar outras, mas enfim, não precisa estar tudo funcionando.

Gostaria de ver se alguém pode, por favor, corrigir a inserção de dados de valores e fazer alguns textbox serem preenchidos automaticamente.

No Frame 'Cliente', assim que eu preencher o nome do cliente, eu gostaria que informações como endereço, cidade, estado fossem preenchidas automaticamente, baseados em uma tabela existente na Plan3. Esse preenchimento, se possível, deveria ser feito só com a mudança do campo Nome, sem ter que clicar em nenhum botão.

No Frame 'Despesas', cheguei a formatar os valores para entrarem no formato "R$ ##,##", e ele entra no formato correto, mas, após inserido na planilha o campo dos centavos era arredondado, e na célula em questão ficava apenas R$ 10 por exemplo, ao invés de R$ 10,00. As células estão configuradas para 2 cadas decimais, e mesmo assim não vai. Então removi a formatação "R$ ##,##" do VBA e deixei inserir apenas o conteúdo do TextBox. Dessa forma, eu fiz uma validação para caso o Textbox estiver vazio, ele preencha a célula com 0, mas se existir um valor, ele entra com o valor na célula. nesse caso, quando o valor inserido é o 0, o Excel reconhece que aquilo é um número, mas se eu entro com qualquer valor, o Excel faz aquele sugestão de transformar a célula em um número, e ai algumas formulas de cálculo no excel não são preenchidas...

Alguém poderia me dar uma força?
Estou me dedicando por aqui no momento, mas pesquisar e aplicar não é o mesmo que receber uma ajuda direta.

Att,
Jorge.

 
Postado : 10/09/2012 6:35 pm
(@macabruz)
Posts: 52
Trusted Member
Topic starter
 

Opa pessoal, boa tarde! Estou realmente precisando de uma força com isso! Meu chefe acabou de confirmar que amanhã quer uma apresentação.
Apenas dando um Up no tópico.

No aguardo.

 
Postado : 11/09/2012 2:00 pm
(@pexis)
Posts: 112
Estimable Member
 

feito
ver em Private Sub Text_Nome_Exit
caso queira alterar algo
corrigindo: fiz somente esta parte

No Frame 'Cliente', assim que eu preencher o nome do cliente, eu gostaria que informações como endereço, cidade, estado fossem preenchidas automaticamente, baseados em uma tabela existente na Plan3. Esse preenchimento, se possível, deveria ser feito só com a mudança do campo Nome, sem ter que clicar em nenhum botão.

 
Postado : 11/09/2012 8:48 pm
(@macabruz)
Posts: 52
Trusted Member
Topic starter
 

Pexis, muito Obrigado.

Eu também acabei conseguindo fazer isso nessa madrugada, utilizando uma combobox e um Procv na planilha. Mas tem um detalhe para acertar lá que é quando eu, por exemplo, seleciono um cliente errado. Se eu utilizar o Backspace ou delete para apagar o cliente, o VBA retorna um erro e pede pra finalizar ou depurar. Preciso corrigir isso.
Vou ver como fica mais fácil aqui, mas muito Obrigado pela solução!

Att,
Jorge.

 
Postado : 12/09/2012 5:15 am
(@pexis)
Posts: 112
Estimable Member
 

aqui nao deu nenhum erro qdo nao encontra nem qdo apaga, só nao tira os dados, mas pode modificar assim p/ apagar:

Private Sub Text_Nome_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim cont, contfim As Integer
Dim nome As String
nome = Text_Nome
If nome = "" Then
    Text_Endereço = ""
    Text_Cidade = ""
    Text_Estado = ""
    Text_CEP = ""
    Text_Telefone = ""
    Text_FAX = ""
    GoTo FIM
End If
contfim = ThisWorkbook.Sheets("Dados dos Clientes").Range("a100000").End(xlUp).Row
For cont = 2 To contfim
        If nome = ThisWorkbook.Sheets("Dados dos Clientes").Cells(cont, 1).Value Then
            Text_Endereço = ThisWorkbook.Sheets("Dados dos Clientes").Cells(cont, 2).Value
            Text_Cidade = ThisWorkbook.Sheets("Dados dos Clientes").Cells(cont, 3).Value
            Text_Estado = ThisWorkbook.Sheets("Dados dos Clientes").Cells(cont, 4).Value
            Text_CEP = ThisWorkbook.Sheets("Dados dos Clientes").Cells(cont, 5).Value
            Text_Telefone = ThisWorkbook.Sheets("Dados dos Clientes").Cells(cont, 6).Value
            Text_FAX = ThisWorkbook.Sheets("Dados dos Clientes").Cells(cont, 7).Value
        End If
Next cont
FIM:
End Sub

tirei aquela msgbox q eu tinha esquecido la..
se usar procv talvez seja melhor pra nao pegar case-sensitive

 
Postado : 12/09/2012 8:34 pm
(@macabruz)
Posts: 52
Trusted Member
Topic starter
 

Pessoal, Ok, o negócio ta indo, mas pintou 2 dúvidas:

1º É possível configurar para que a tecla "Enter" pule linhas dentro da mesma TextBox, ao invés de ter que usar "Ctrl+Enter"?

2º Gostaria de um código para abrir a tela de Impressão (o famoso Ctrl+P). Consegui um código que faz eu visualizar a impressão, mas existem 2 problemas nele:
1 - A visualização aparece ao fundo do meu Form, e não é possível alternar entre o Form e o Excel ao fundo com a visualização.
2 - Trava tudo. Só consigo fechar a visualização ou o form utilizando Ctrl+Alt+Del.

Segue código que utilizei:

Sheets("Relatório_Visitas").Select
    SendKeys "%P"  'Envia a combinação de teclas Alt + C
    ActiveWindow.SelectedSheets.PrintPreview
    Sheets("Relatório_Visitas").Select

Alguém pode me ajudar?

Att,
Jorge.

 
Postado : 21/09/2012 2:21 pm
(@macabruz)
Posts: 52
Trusted Member
Topic starter
 

Pessoal, alguém pode me ajudar com isso?

Como abrir a janela da impressora (Ctrl+P) com comando no VBA?
E, se for possível, fazer com que ao abrir a janela eu consiga mexer nela, pois, quando eu estou rodando um Form eu não consigo acessar a planilha...não sei se isso é normal ou se tem como habilitar o acesso as planilhas enquanto o Form está rodando...

No aguardo.

 
Postado : 24/09/2012 8:28 pm
(@macabruz)
Posts: 52
Trusted Member
Topic starter
 

Galera, consegui resolver o Ctrl+P. Segue código pra quem quiser ver.

ThisWorkbook.Worksheets("Relatório_Visitas").Activate
    Application.Dialogs(xlDialogPrint).Show
 
Postado : 25/09/2012 1:09 pm