Ir ao conteúdo
  • Cadastre-se

Neri Schuck

Membro Pleno
  • Posts

    36
  • Cadastrado em

  • Última visita

Tudo que Neri Schuck postou

  1. Quem quiser acompanhar pode ser no link:https://www.hardware.com.br/comunidade/backup-base/1498273/#post8135709
  2. Como eu faço o backup se a base de dados é separado dos formulários? Tenho o meu arquivo onde tenho todos os formulários e outra base com os dados. Se colocar o meu backup ele fará cópia dos formulários, mas eu quero fazer dos dados... vou colocar abaixo o código do meu backup atual, baseado no link... Se alguém puder me ajudar, agradeço.... O código abaixo eu encontrei parte na internet e adaptei parte para a minha necessidade. Porém ele faz cópia somente do arquivo ativo. O que eu preciso é fazer cópia de outra base. Assim.... Tenho dois arquivos: - um com os formulários - um com os dados >> a arquivo de dados eu não abro manualmente, somente pelos formulários. Então, com os formulários abertos, eu quero uma opção que acesse o arquivo de dados e faça uma cópia de todo o arquivo para um outro local (para a paste Backup - por exemplo). Alguém me ajuda a adaptar a minha necessidade? Public Sub Backup() Dim Copia As String Dim caminho As String Dim NomeArquivo As String Dim Resp As String Dim y, X As String Dim a As Integer y = ActiveWorkbook.Name a = Len(y) X = Left(y, (Len(y) - 5)) MsgBox "Este módulo serve para fazer cópia dos dados do Programa." & vbCrLf & _ "É recomendável fazer a cópia diariamente!" & vbCrLf & _ " " & vbCrLf & _ "Este comando irá finalizar o Programa. Após a execução poderá ser reinicializado normalmente.", vbInformation, "Backup" NomeArquivo = ThisWorkbook.Name caminho = Application.ThisWorkbook.Path & "\Backup\" Copia = caminho & X & " - " & Plan12.Cells(202, 3) & ".xlsm" Resp = MsgBox("Deseja efetuar cópia de segurança?" & vbCrLf & _ "A cópia levará alguns segundos para terminar!", vbYesNo + vbDefaultButton2, "Controle Caixa.xlsm") If Resp = vbNo Then MsgBox "Backup cancelado pelo usuário!", vbInformation, "Controle Caixa" Exit Sub End If Application.DisplayAlerts = False ThisWorkbook.Save ThisWorkbook.SaveAs Copia Application.Quit End Sub
  3. Insiro em anexo 2 formulários: 1 - Pesquisa de Clientes 2 - Cadastro de Dados Quando quero cadastrar dados, clico no sinal de "+" no arquivo "Cadastro de Dados" e escolho o cliente. Ao escolher o cliente 2 chamado "Auto" funciona corretamente, porém na hora de salvar ele troca o cliente. Motivo que ele faz isto: O comando não salva o nome do cliente, e sim substitui pelo codigo do mesmo que está no cadastro do cliente. Por exemplo: Se escolher o cliente "Auto" (Cliente 2) e salvar os dados, ele teria que salvar o código "2". Mas não é isto que acontece. Ele vai na relação dos clientes e procura a palavra "Auto" e o primeiro que ele encontrar ele pega o código. Vejam que o cliente 1 tem o nome de "Auto Peças", ou seja, tem a palavra Auto e por este motivo ele salva como cliente 1. O codigo que faz a procura e salva o codigo é este: If Me.txtcliente.Text = "" Then .Cells(indice, ColCliente).Value = "NAO INFORMADO" Set wsCliente = ThisWorkbook.Worksheets("clientes") With wsCliente.Range("B1:B65000") Set X = .Find("NAO INFORMADO", LookIn:=xlValues) If Not X Is Nothing Then cliente = wsCliente.Rows(X.Row).Value End If End With .Cells(indice, ColCliente).Value = cliente indiceRegistro = indice ' posiciona no lancamento correto para evitar erros Set wsCliente = Nothing Else Set wsCliente = ThisWorkbook.Worksheets("clientes") With wsCliente.Range("B1:B65000") Set X = .Find(Me.txtcliente.Text, LookIn:=xlValues) If Not X Is Nothing Then cliente = wsCliente.Rows(X.Row).Value End If End With .Cells(indice, ColCliente).Value = cliente indiceRegistro = indice ' posiciona no lancamento correto para evitar erros Set wsCliente = Nothing End If Como poderia fazer para evitar este erro?
  4. Preciso ver como vocês preenchem campos exemplo Clientes. Assim: Tenho uma tabela que cadastra os clientes. Depois em outro formulário utilizo o nome dos clientes (para as compras realizadas). O preenchimento do nome do clientes é realizado em Textbox, porém não permito que digitem para evitar erros na digitação do nome, o que geraria erros nos relatórios futuros. Para evitar isto, o textbox foi bloqueado e ao lado tem um botão que acessa um pesquisar ( que tem toda a relação dos clientes). Após o filtro, encontrando o nome, dou um clique duplo que preenche o nome na textbox automaticamente. Porém este clique no botão, encontrar o cliente, dar um clique duplo.... deixou o usuário meio descontente. Ele solicitou uma outra forma de fazer isto. Gostaria de ver com vocês como resolveram casos semelhantes. Estava pensando em colocar uma combobox e a medida que se digitaria o nome o filtro ia acontecendo. Porém tem um caso assim, vejam os nomes dos clientes: Comércio Maria do Bairro Ltda. Maria da Silva doces. Carlos Maria da Silva Camargo Com. e Transportes. Caso no Combobox for digitado "Maria", logicamente deveria trazer os 3 primeiros clientes, mesmo o nome da Maria estar no meio do nome. Qual a sugestão de vocês? Preciso resolver este caso para agilizar o serviço.... Obrigado pelo retorno.
  5. Tenho vários gráficos no Excel que eu copiei e colei no PowerPoint. Antes eu usava o Excel 2013 e tinha tudo vinculado...Agora estou usando o Professional Plus 2016 e não consigo fazer. Como eu faço: - Faço o gráfico no Excel e Copio ele; - no PowerPoint vou em Colar Especial - O gráfico é inseri porém na hora de atualizar ele dá a seguinte mensagem Com certeza deve ter uma forma de fazer, ainda mais se os gráfico são atualizados mensalmente e são vários.... não é aceitável fazer todos os meses o mesmo serviço de copiar, colar, apresentar e depois apagar (kkkkkk)
  6. Laerte Agora entendi o teu exemplo.... fui olhar novamente. Obrigado...vou usar.
  7. Quando clico em calcular no userform no Excel ele mostra a mensagem que destaquei abaixo. Como eu faço para que ela apareça no meu userform?Qual a linha de comando? pode ser em Textbox, label, etc.... gostaria de mostrar ela, igual ao que destaquei abaixo, porém no meu userform....
  8. Certo...já utilizo desta forma em alguns trabalhos....Vou ver como ajustar... muito obrigado.
  9. Ok... Mas como este programa é operado por outra pessoa, não deixei acesso para que ela consiga visualizar planilha. Agora pergunto pois realmente não sei: teria como deixar uma planilha dinâmica como base e acessar estes dados por Listview?
  10. Vou dar uma rápida explicada da planilha, sem a necessidade de visualizar ela. Tenho a opção de comparar os meses de um ano e de outro ano. No ano 1 (tenho as opções de escolher 1 mês ou até 12 meses). Igualmente será para o ano 2 para comparar com o primeiro. 1)A quantidade de cálculos é enorme, sendo que cada cliente tem os 24 meses lado-a-lado (2 anos dos comparativos) 2)Em cada mês (para cada cliente) tenho a opções de 5 tipos de seguros o que vai fazendo com que a planilha fique pesada 3)Exemplo o mês Janeiro do primeiro ano: Usa o somase, comparando se o ano estiver marcado. Após isto ele tem que usar o somase para cada um dos 5 tipos de seguros (neste soma-se tem que ver o ano, mês, cliente, tipo de seguro). Abaixo o calculo de Janeiro para um cliente. Isto se repete 24 vezes para cada cliente. (Multiplica por 400 clientes......!!!!) =SE(Auxiliar!$B$52=VERDADEIRO;SE(Auxiliar!$B$46=VERDADEIRO;SOMASES(Dados!$G:$G;Dados!$B:$B;Auxiliar!$A$52;Dados!$C:$C;Auxiliar!$B$51;Dados!$D:$D;A2;Dados!$F:$F;Auxiliar!$A$46);0)+SE(Auxiliar!$B$47=VERDADEIRO;SOMASES(Dados!$G:$G;Dados!$B:$B;Auxiliar!$A$52;Dados!$C:$C;Auxiliar!$B$51;Dados!$D:$D;A2;Dados!$F:$F;Auxiliar!$A$47);0)+SE(Auxiliar!$B$48=VERDADEIRO;SOMASES(Dados!$G:$G;Dados!$B:$B;Auxiliar!$A$52;Dados!$C:$C;Auxiliar!$B$51;Dados!$D:$D;A2;Dados!$F:$F;Auxiliar!$A$48);0)+SE(Auxiliar!$B$49=VERDADEIRO;SOMASES(Dados!$G:$G;Dados!$B:$B;Auxiliar!$A$52;Dados!$C:$C;Auxiliar!$B$51;Dados!$D:$D;A2;Dados!$F:$F;Auxiliar!$A$49);0)+SE(Auxiliar!$B$50=VERDADEIRO;SOMASES(Dados!$G:$G;Dados!$B:$B;Auxiliar!$A$52;Dados!$C:$C;Auxiliar!$B$51;Dados!$D:$D;A2;Dados!$F:$F;Auxiliar!$A$50);0);0) É bem complexo. Talvez tenha outra maneira de fazer este cálculo. Mas não sei como faria. Mas sobre a postagem de cálculo manual...ele já está pois atualiza somente quando clico no botão "Atualizar"
  11. Novamente agradeço a colaboração de ambos os amigos.... sempre é importante trocar idéias. Vou ver como fazer. Agora tenho opções. Abraço a todos e ótima semana para nós todos.
  12. Laerte Ótimo esclarecimento... Muito obrigado. Provavelmente outras pessoas já tiveram o mesmo problema.Abraço
  13. Amigos, minha máquina tem estas opções marcadas para o funcionamento da minha macro. Quando passei para a máquina do cliente não tinha as opções "Microsoft Office 16.0 Object Library" e "Microsoft Excel 16.0 Object Library". Ao invés disto, tinha o 15.0. Em consequência disto não funcionou o pesquisar. Não trazendo os dados... Acredito que deva alterar esta parte.... Alguém sabe o que fazer? adicionado 18 minutos depois Consegui.... Alterei o Provider para .Provider = "Microsoft.ACE.OLEDB.12.0"
  14. Segue em anexo Descrição do Problema.docx teste (2).rar
  15. Coloquei um exemplo no link: https://www.dropbox.com/home/Teste Excel Se quiser olhar.. fiz uma descrição em Word (tb está lá).... Sem stress.... se conseguir, ótimo. Se não conseguir, tb está ótimo....Mas já que pediu, disponibilizei. Obrigado
  16. Amigo vou ajustar.... mas atualmente com 400 clientes leva em torno de 40 segundos. Amanhã ou depois terá 500..600...clientes e o tempo terá que ser alterado manualmente. Exatamente isto que eu queria evitar pois a planilha fica com o usuário, e eu não acompanho a quantidade de clientes ... mas vou ver o que faço. Abraço e obrigado por ajudar.
  17. Otimo meu amigo (até pensei nisto) Acontece que vou inserindo dados e o tempo vai alterando....Por este motivo pensei no "Calculando" que aparece no excel....
  18. Alguém sabe como eu faço para que no userform Excel VBA apareça aquela mensagem que fica na parte inferior à direita da planilha do Excel que diz: "Aguarde....Processando"..... o motivo é que, ao marcar o meu formulário leva alguns segundos calculando e o formulário ocupa a tela inteira. Caso mostre que está processando, o usuário não irá clicar eu outros pontos.....
  19. Amigo... vou fazer os testes. Muito obrigado. Se precisar novamente, eu posto. Abraço
  20. vou anexar...veja as setas; queria (se possivel) o gráfico fosse expandido também.... teste.rar
  21. Amigo Osvaldo Não consegui ajustar... vou refazer os testes mais tarde... Obrigado
  22. Coloquei um Userform para ser tela cheia pelo comando: 'Maximizar na tela Dim lngWinState As XlWindowState With Application .ScreenUpdating = False lngWinState = .WindowState .WindowState = xlMaximized Me.Move 0, 0, .Width, .Height .WindowState = lngWinState .ScreenUpdating = True End With 'fim este transforma o form e fica show. Acontece que no meu form inseri uma Image para colocar um gráfico. Este não expande proporcional. será que alguém possui um código que faça isto?
  23. Obrigado Edson... Vou fazer os testes, depois disto irei postar o resultado. Abraço

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...