Ir ao conteúdo
  • Cadastre-se

Neri Schuck

Membro Pleno
  • Posts

    36
  • Cadastrado em

  • Última visita

posts postados por Neri Schuck

  1. 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

     

  2. 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?

     

  3. 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.

     

     

  4. 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 

    image.png.fa33503117f99eb0569413d8dac430ec.png

    - O gráfico é inseri porém na hora de atualizar ele dá a seguinte mensagem

    image.png.b9956361ffe8a2236df0fbb736190842.png

     

    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)

     

  5. 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"

     

     

     

  6. 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.

     

    image.png.69be53f98c6a78898d924b16eb13d513.png

    Em consequência disto não funcionou o pesquisar. Não trazendo os dados... Acredito que deva alterar esta parte....

    image.png.277eba0bd73793458e50d581faf76841.png

     

    Alguém sabe o que fazer?

     

     

    adicionado 18 minutos depois

    Consegui.... Alterei o Provider para .Provider = "Microsoft.ACE.OLEDB.12.0"

  7. 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?

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...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!