Ir ao conteúdo
  • Cadastre-se

Comentar Código Fonte VBA


Posts recomendados

Boa Tarde amigos do Clube do Hardware,

 

Peço por favor que alguém comente esse código abaixo, estou precisando aplica-lo em outro projeto e não estou conseguindo. Segue código:

 

Sub InsereNomesUAPICOS()
 Dim LR As Long, k As Long, m As Long, x As Long
  LR = Sheets("geral").Cells(Rows.Count, "L").End(xlUp).Row
  Sheets("Recebimento (2)").Range("B10:D27").ClearContents
    For m = 12 To 13
      For k = 10 To LR
        If Application.CountIf(Sheets("Recebimento (2)").Columns(2), Sheets("geral").Cells(k, m)) < 1 _
         And Sheets("geral").Cells(k, 3) = Date And Sheets("Geral").Cells(k, 6) = "UA PICOS" Then
          Sheets("Recebimento (2)").Cells(x + 10, 2) = Sheets("geral").Cells(k, m)
          x = x + 1
        End If
      Next k
    Next m
End Sub

 

Para facilitar, estou enviando em anexo o arquivo.

 

De já meus agradecimentos,

 

 

Paulo Cezar.

Desligamentos Programados nº 060-2017.zip

Link para o comentário
Compartilhar em outros sites

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

Link para o comentário
Compartilhar em outros sites

Caro Philipp Moreira,

Agradecido por se dá ao trabalho de me auxiliar nesse trabalho.

 

Só que tem um detalhe, na coluna "K" não tem nada e a coluna onde cita a UA PICOS é na coluna "F". Faça uma nova leitura pra ver se melhora.

 

Mais uma vez, agradaecido

 

Paulo Cezar.

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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