Welington Martins de Souza disse:
Prezados estou com um problema,... tenho um banco de dados que salvo um registro de cliente em cada linha e esta planilha possue formulas em duas colunas até a linha 1000 e quando salvo um novo nome ele esta sendo registrado na linha 1001.
Como faço para que o registro que eu salvar ignore as formulas que estão nas celulas e salve este registro na proxima linha em branco e não depois das celulas que estão com essas formulas???
Cara, criei um mini sisteminha simples em VBA para você ter uma idéia como solucionar o problema. Não repara nos detalhes, tá meia boca kkk, mas é para ter uma idéia...
Clica no botão "Incluir" ele abre o formulário, preenche o formulário e clica no botão Incluir, automaticamente os dados sempre serão incluidos na linha em branco
Sensei Matsumoto disse:
Welington Martins de Souza disse:
Prezados estou com um problema,... tenho um banco de dados que salvo um registro de cliente em cada linha e esta planilha possue formulas em duas colunas até a linha 1000 e quando salvo um novo nome ele esta sendo registrado na linha 1001.
Como faço para que o registro que eu salvar ignore as formulas que estão nas celulas e salve este registro na proxima linha em branco e não depois das celulas que estão com essas formulas???Wellington, me corrija por favor, vê se eu entendi direito o que você quer: você quer que ao adicionar um novo dado seja colocado na linha vazia, mas não no final da tabela de dados é isso?Eu tentei imaginar e esbocei uma planilha (abaixo), na coluna A tem os dados, na coluna B e C tem fórmulas (lógicamente não vai mostrar como fiz no esboço). Até a linha 2 tem dados, o que você quer é que seja incluido na linha 3 e não na linha 10 não é isso?
PERFEITO!!! É ISSO MESMO QUE QUERO TENHO FORMULAS ATÉ A LINHA 1000 E PRECISO QUE SALVE NESTE CASO, NA LINHA 3 MAS ESTÁ SALVANDO NA LINHA 1001. COMO FAÇO???
Cara montei seu sistema aqui e entendi o que vc fez o único problema é que tenho muitas formulas em várias colunas e formulas grandes ex: =SE('[Viva Vida_ok3.xls]Dados'!B12=0;"";PROCV(B12;'[Viva Vida_ok3.xls]Dados'!$L$2:$Q$998;2;FALSO)). Esta mesmo esta em todas as linhas de somente uma coluna e por ai vai,... se apago todas as formulas de todas as colunas e deixo elas somente ate a linha 10 meu programa salva na linha 11.
E a maioria das formulas ela pega os dados de outra planilha,... já tentei colocar a conta ou esta coleta de dados para que o vb fizesse igual vc fez a conta da multiplicação já no programa mas não consegui,... se esta formula "=SE('[Viva Vida_ok3.xls]Dados'!B12=0;"";PROCV(B12;'[Viva Vida_ok3.xls]Dados'!$L$2:$Q$998;2;FALSO))" por exemplo vc conseguir colocar no vb aí sim vc me ajuda e o problema vai ser resolvido pois as formulas estarão no programa e não mais na planilha.
Com isso acredito que resolvo outro problema que é o tamanho dos arquivos pois realmente estão bem grandes.
Welington, você consegue tranquilamente colocar via VB qualquer fórmula do Excel.
No caso de usar somente a função SE existe no VB o comando IF. Se você usar a função SE com PROCV ai pode usar o comando RANGE("a1").FormulaR1C1.
Exemplo:
Range("a1").FormulaR1C1 = "=VLOOKUP(2,R2C1:R4C3,2,0)" que é a mesma coisa que
=PROCV(2;A2:C4;2;0)
Cara já me ajudou mas vamos lá,... me corrija se eu estiver errado na formula que vc disse ex: R2C1 quer dizer linha 2 coluna 1, CERTO??? E outra coisa na formula que falei a parte('[Viva Vida_ok3.xls]Dados'!B12) se refere a célula B12 mas de OUTRA PLANILHA (no caso planilha Viva vida_ok3 na aba Dados) como coloco nesta formula que vc falou para pegar este dado da outra planilha?
Explicando melhor meu arquivo, eles são duas planilhas que funcionam para um setor de atendimento onde uma planilha o atendente preenche um cadastro de pacientes e outra planilha separada serve para os médico olharem no seu dia de atendimento, quem atender e depois preenche com os resultados de exames. Infelizmente as planilhas devem ser separadas para que o atendente não tenha acesso aos resultados dos pacientes. Quando o atendente salva um novo paciente no banco de dados esse nome automaticamente já aparece com o número do cartão do paciente na planilha que os médicos tem acesso então essa fórmula que está na celula da planilha dos médicos busca o número do cartão cadastrado "SE('[Viva Vida_ok3.xls]Dados'!L2=0;" ";'[Viva Vida_ok3.xls]Dados'!L2)" e essa outra busca o nome referente a este numero na planilha do cadstro "SE('[Viva Vida_ok3.xls]Dados'!B2=0;"";PROCV(B2;'[Viva Vida_ok3.xls]Dados'!$L$2:$Q$998;2;FALSO))".
A cada linha esse "L2" da primeira formula e o "B2" da segunda formula mudam para L3 e B3 e assim vai até a linha 1000.
Acho que falei d+++ mas se consigo colocar essas duas formulas para rodar no vb olhando linha por linha. SHOW! Matei um dos 8 problemas que tenho,..rsrsr Brinkdera!!! Valeu.
Cara desde já muito obrigado pela força.
Então Welington, você sacou, R2C1 é linha 2 coluna 1. No seu caso tá assim:
SE('[Viva Vida_ok3.xls]Dados'!L2=0;" ";'[Viva Vida_ok3.xls]Dados'!L2)
no VBA é o mesmo que:
Range("A1").FormulaR1C1 = "=IF('[Viva Vida_ok3.xls]Dados'!R2C12=0,"" "",'[Viva Vida_ok3.xls]Dados'R2C12)"
SE('[Viva Vida_ok3.xls]Dados'!B2=0;"";PROCV(B2;'[Viva Vida_ok3.xls]Dados'!$L$2:$Q$998;2;FALSO))
e no VBA fica assim:
Range("A1").FormulaR1C1 = "=IF([Viva Vida_ok3.xls]Dados!R2C2=0,"" "",VLOOKUP(R2C2,[Viva Vida_ok3.xls]Dados!R2C2:R998C17,2,0))"
Agora é só adpatar para sua planilha e só alegria! :-)
Brother vamos para as perguntas bestas,..rsrs "tem que ter",..rsrs
Como eu coloco essa fórmula lá no programa pois tentei de várias formas e não funciona.
Primeiro apaguei as formulas da coluna na planilha do excel.
Segundo tentei criar uma Private Sub TextBox_Nome (que é o nome da TextBox que quero que apareça o nome do paciente nela quando eu digitar o numero do paciente na combobox_consulta) e coloquei a segunda formula que vc mencionou acima (vlookup).
Não acontece nada como eu apaguei a formula na planilha o campo fica em branco.
Tentei colocar a formula solta em vários locais do programa mas aparece um erro de compilação: Inválido fora de um procedimento.
Como declaro a formula no programa para que ele "puxe" procure os dados?
Qual das informações da fórmula que leva o resultado para a coluna do excel que eu quero? No caso coluna 1.
Range"A1" ou FormulaR1C1 do início da formula?
Eu vi o seu exemplo que vc mencionou no inicio do dialogo mas la vc criou um botão para incluir os dados a cada linha e no meu caso eu quero que quando a planilha cadastro for cadastrado o clliente automaticamente apareça na planilha ou no programa quando eu consultar pelo numero do cartão.
Welington, na hora que você postar algo com imagem não use a janela da resposta rápida. Em vez disso, clique no botão Responder e através da nova janela escreva a mensagem e insira a imagem clicando no botão "Anexar Foto" (só dá para mandar 1 foto por post)
Como já falei, não tente enviar a imagem pela resposta rápida, não funciona.
Clique em responder sem escrever nada, na nova janela coloque o texto e abaixo tem um campo para você colocar a imagem. Se tiver várias imagens tem que enviar varios post, é uma imagem por post, não dá pra colocar várias.
Analisei sua planilha e vou fazer uma sugestão. Na primeira planilha onde a pessoa somente cadastra, coloque um botão para que a pessoa clique assim que terminar de cadastrar. O clique do botão executa uma subrotina em VBA, que faz o preenchimento automático na segunda planilha.
A idéia é assim: a pessoa preenche a primeira planilha, na coluna "E" a pessoa não preenche. Quando clicar no botão a rotina pega o que foi preenchido na linha atual e transporta para a segunda planilha e também marca um "X" na coluna "E" (pra pessoa saber que foi registrado).
Este botão já existe. O formulário do cadastro é este. Quando ele termina de preencher clica em salvar e pronto. Como a Segunda planilha esta com as formulas para buscar este numero de cadastro (pode ver na comboBox aberta) a segunda planilha já busca este numero e o nome assim que o funcionario clicar em salvar. Por isso neste caso quero colocar essas duas formulas que vc mencionou em vba para que a planilha não fique grande e para que ao buscar as datas de consulta de um mesmo paciente atravez de uma combobox não fiquem separadas Ex: Se um paciente "Bob" for o primeiro a ser registrado a data de consulta dele aparece primeiro em uma combobox pesquisa por datas de consultas realizadas. E quando ele voltar for registrada essa segunda consulta dele na (por exemplo) linha 14 da planilha, quando eu buscar as datas de consulta do Bob em uma combobox vai aparecer a data da primeira consulta em cima (esta correto) mas a segunda data da consulta consulta em vez de aparecer embaixo da primeira data, so vai aparecer depois de um grande espaço em branco representando as outras 12 consulta que são outros pacientes. Vou enviar no próximo uma foto disto. E sobre o botão como coloca as formulas então da segunda planilha no vb?