-
Posts
36 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Fabricantes
Livros
Cursos
Análises
Fórum
posts postados por Neri Schuck
-
-
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
-
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?
-
-
-
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.
-
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)
-
Laerte Agora entendi o teu exemplo.... fui olhar novamente.
Obrigado...vou usar.
- 1
-
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....
-
Certo...já utilizo desta forma em alguns trabalhos....Vou ver como ajustar...
muito obrigado.
-
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?
-
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"
-
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.
- 2
-
Laerte
Ótimo esclarecimento... Muito obrigado. Provavelmente outras pessoas já tiveram o mesmo problema.Abraço
-
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 depoisConsegui.... Alterei o Provider para .Provider = "Microsoft.ACE.OLEDB.12.0"
-
-
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
-
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.
-
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....
-
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.....
-
Amigo... vou fazer os testes. Muito obrigado. Se precisar novamente, eu posto. Abraço
-
-
Amigo Osvaldo
Não consegui ajustar... vou refazer os testes mais tarde...
Obrigado
-
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?
-
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
Backup Base de Dados outro Arquivo
em Microsoft Office e similares
Postado
Quem quiser acompanhar pode ser no link:https://www.hardware.com.br/comunidade/backup-base/1498273/#post8135709