Ir ao conteúdo
  • Cadastre-se

Philipp Moreira

Membro Pleno
  • Posts

    21
  • Cadastrado em

  • Última visita

posts postados por Philipp Moreira

  1. No Seu projeto VBA, clique em Ferramentas >> Referencias e verifique:

     

    Se estiver usando DAO para se comunicar com o banco e realizar o registro dos dados:

    Se a biblioteca: Microsoft DAO 3.6 Object Library está assinalada;

     

    ou

    Se estiver usando ADODB para se comunicar com o banco e realizar o registro dos dados:

    Se a biblioteca: Microsoft ActiveX Data Object 2.8 Library está assinalada;

  2. Bruno, boa tarde!

     

    Creio que esteja encontrando o erro, pois nas condições IF você pede para verificar uma planilha com o nome Sheets5, porém, ao observar o navegador de objetos do lado esquerdo, não constatei a existencia de nenhuma aba/sheet como o nome Sheets5.

     

    Ao invés de Sheets 5 utilize o nome real da planilha de onden advem os dados que você quer chegar na condição. Por exemplo :

     

    Sheets17 ou Sheets("DOF") . . .

     

    Entendeu?

  3. Complementando a dica do Jhon, após inserir uma tabela:

    1. Clique na aba/ribbon Dados
    2. Deve ser exibida uma área chamada: Classificar e Filtra
    3. Clique em Classificar,  será exibido uma janela na qual, poderá selecionar os campos na sequencia de hierarquia que a classificação deve ser seguida e para cada um deste campos você pode escolher se o organiza por ordem crescente ou decrescente.
  4. Na sua rotina em que registra os itens nesta aba em que os itens não podem se repetir e devem ser somados, você inclui cada registro linha a linha?

     

    Caso esteja fazendo isso, tente, ao invés de escrever linha linha jogar em um array, e nele coloque um processamento para nao duplicar.

     

    Caso nao tenha entendido, poste uma planilha que contenha a estrutura e as rotinas VBA, para que os demais membros possam analisar e propor uma solução mais adequada.

  5. Wendel, boa noite!

     

    Eu recomendo não usar celulas mescladas,  mas sim, informar o valor 6 na D1 e para ter o efeito visual que deseja,

    selecione da D1 até L1, botao direito, formatar celular, aba alinhamento e no alinhamento horizontal, escolha a opção alinhar conforme seleção.

     

    Fazendo da forma que sugeri acima como da forma que você evidenciou sua planilha, veja que por mais que as células estejam mescladas, o valor pode ser obtido sempre a partir da primeira célula da sequencia de células mescladas, no seu caso D1.

  6. Olá,  Pamela!

    Veja se o exemplo te ajuda quanto a parte do intervalo de datas.

    Neste exemplo utilizo a intervalo nomeado dinâmico,  como ele facilita a manipulação de um range especifico e ele é incremental de forma automatica, pois a cada linha de registro que você inclua ele cresce automaticamente.

     

    Quanto ao enviar a planilha por e-mail e ela esta indo sem o  código VBA, você ao salva-la é notificada de algum erro?

    Desculpe perguntar, mas, esta salvando como arquivo xlsm, xlsx ou ... ?

  7. Mais ou menos assim,

     

    Sub teste()
    
    Dim codigoInformado As variant
    
    codigoInformado = InputBox("Informe o código",  "Filtro de tabela")
    
    If Not VBA.IsNumeric(codigoInformado) Or VBA.Len(VBA.Trim( codigoInformado)) < 1 Then
    	Msgb "mensagem de notificação"
    	Exit Sub
    End If
    
    If  WorksheetFunction.CountIf([Informe o range/coluna aonde estão os códigos], codigoInformado < 1 Then
    	Msgb "mensagem de notificação"
    	Exit Sub
    End If
    
    ' Se passou pelas validações acima
    
    .
    .
    .
    execute seu processamento
    .
    .
    .
    End Sub	

     

  8. Espero que ajude!

    Não se era isto mesmo, que precisava!

     


    ' Declarando/criando a rotina, que não recebe parâmetros/variaveis/valores para execução
    Sub InsereNomesUAPICOS()
        ' Declaração de variaveis
        Dim LR As Long, k As Long, m As Long, x As Long
        
        ' Inicializando as variaveis / inputando valores nas variaveis
        
        ' recuperando o valor da última célular preenchida na coluna L da aba Geral, assim setando o numero da linha na variavel.
        ' Basicamente o código orienta ao interpretador VBA, selecionar a última celular de toda a planilha
        ' e depois como se usasse o Shift+End, através do qual você consegue ir para última celular preenchida.
        LR = Sheets("geral").Cells(Rows.Count, "L").End(xlUp).Row
        
        ' Limpa o conteúdo e formatação do range B10 até D27
        Sheets("Recebimento (2)").Range("B10:D27").ClearContents
        
        ' Executa o laço/repetição um vez
        For m = 12 To 13
          ' Executa o laço de 10 até o número da última linha preenchida
          For k = 10 To LR
            ' Usando a função do excel ContSe
            ' Aonde ele orienta que na coluna B da planilha recebimento, contabilize o valor da célula,
            ' dando a posição da célula os valores das variaveis m e k, aonde k é a coluna K e m é a linha
            
            If Application.CountIf(Sheets("Recebimento (2)").Columns(2), Sheets("geral").Cells(k, m)) < 1 _
                ' se a função contse for menor do que 1 e o valor da linha 3 da coluna K for igual a data atual (ou seja,  a data do momento da execução da macro
                ' e o valor da linha 6 da coluna k for UA PICOS
                And Sheets("geral").Cells(k, 3) = Date And Sheets("Geral").Cells(k, 6) = "UA PICOS" Then
                    ' Atualiza o valor da aba racebimento 2 de acordo com o valor da aba geral
                    Sheets("Recebimento (2)").Cells(x + 10, 2) = Sheets("geral").Cells(k, m)
                    x = x + 1
            End If
            
          Next k
        Next m
    End Sub

  9. Fcll,  boa noite!

     

    Desculpe a demora,  mas veja se o anexo te ajuda a continuar!

     

    Toda vez que inserir um campo para o lançamento de produtos, veja o padrão que deve ser adotado para o  preenchimento da propriedade Tag do controle, tanto do campo de produto como do de quantidade.

    Creio que da forma que fiz, ficou dinamico e suportara a sua necessidade.

     

    De uma analisada no código e caso tenha dúvida de algo, da um toque!

    Exemplo Lançamento.zip

    • Curtir 1
  10. Boa tarde a todos!

     

    Desde já deixou meu agradecimento pela sua atenção em ao menos ler o meu post!

     

    Descrição :

    Sou um desenvolvedor VBA que me deparei com a seguinte situação. Desenvolvi uma rotina que criar um arquivo excel (xlsm)  em um diretório A da rede e o disponibiliza (movimenta/copia) em outro diretório B da rede, sendo o diretório B, restrito a um grupo de acesso determinado, porém,  alguns usuários de primeiro não visualizavam os arquivos disponibilizados no diretório B,  apesar de o arquivo realmente estar no diretório.

     

    Verifiquei se para estes usuários que não visualizavam o arquivo no diretório B, se todos estavam inclusos no grupo de acesso que permitia acesso ao diretório B, se a configuração para visualizar arquivos ocultos estava configurada em suas máquinas, e para ambos os quesitos todos estavam. Estes usuários só passaram a visualizar os arquivos após eu excluir diretamente os arquivos do diretório B, sem ser via VBA, pegar os arquivos Ctrl+C do diretório A e Ctrl+V no diretório B, deleta-los novamente. Então ao rodar o processamento do meu código VBA o arquivo era movido/copiado do diretório A para o diretório B e eles passavam a visualizar.

     

    O que me ocorreu é que esta situação de não visualização, não é conforme faço a manipulação de movimentação/cópia via VBA, mas sim, uma situação em que o SO (Windows) não consegue efetivar nos arquivos, as permitivas de segurança no arquivo devido a ser uma manipulação via código, precisando que o usuário realize a primeira cópia na mão(Ctrl+C >> Ctrl+V) e somente depois o código funciona, porém, não posso permitir que fique nesta situação.

     

    Então como não entendo muito de SO e redes gostaria de saber se algum dos colegas,  saberia me explicar ou ao menos me indicar o norte (os conceitos que eu deveria estudar/pesquisar) para chegar a um entendimento do que ocorre e tratar no meu código VBA.

     

    Uma coisa que me passou pela cabeça ao tentar entender, é que na maquina do usuário que executa o código VBA que criei,  usa Windows 8, me ocorreu que talvez, fosse devido a isto,  mas ainda não tive tempo de investigar mais este aspecto.

  11. Bom dia.

     

    Ambiente: Desktop Win 7 32 Bits

    Periférico: Impressora HP PSC 1350 All-In_One Multi Funcional

     

    Problema: Não tenho e não consegui localizar na Web o driver da minha impressora ( Inclusive no site do fabricante. Tentei até mesmo utilizar o sw de solução que eles disponibilizam, mas, o mesmo não resolveu ) . 

     

    Alguém, possui ou saberia indicar um site que sempre utilizar para busca de drivers de periféricos como impressora ?

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

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!