Ir ao conteúdo
  • Cadastre-se
Johnatan Ramos

Macro na seleção.

Recommended Posts

Bom dia amigos, como estão?

 

Primeiramente me desculpem se estou postando no lugar errado, etc... Ficaria contente em saber e me redimir.

 

 

Bem, sou bem leigo em relação a Macros do Excel e preciso de ajuda, talvez vocês consigam me ajudar.

 

 

É o seguinte: Eu trabalho com uma planilha onde são incluídas todos os dias cerca de 250 linhas. Nela, eu divido informações da coluna B (vou representar abaixo para um melhor entendimento).

 

A     B      C     D    E    F...

#    Cob   #      #    #    #....

        5

        5

        8

        8

       12

       12

 

Bom, o que eu preciso que a macro faça, é separar as informações (separar o 5 do 8 e o 8 do 12) inserindo uma linha. E nessas linhas que serão incluídas eu preciso de um auto-soma nas colunas L, N e P.

 

Eu consegui executar o Macro para "higienizar" essa planilha, mas quando chegou no dia seguinte e tive de incluir novas linhas, ele tornava para higienizar as linhas anteriormente gravadas na Macro 

 

Vou anexar um arquivo com modelo e o que eu desejo que seja feito. Só vou retirar as informações pessoais dos clientes aqui da Assessoria. 

 

 

Não sei se o que estou pedindo é muito ou mesmo possível, mas como é algo que eu necessito bastante, bom, quase nunca é ruim perguntar. Desde já sou imensamente grato por qualquer tentativa de ajuda que eu possa conseguir!

 

 

Um grande abraço!

Pasta2.xlsx

Compartilhar este post


Link para o post
Compartilhar em outros sites

Experimenta essa.

 

1. A macro deve ser ativada quando a aba com os seus dados estiver ativa/selecionada.

2. Seus dados precisam começar na linha 2, assumindo portanto que existem cabeçalhos na linha 1.

Sub Macro()Dim y As Long, r As Longy = Cells(Rows.Count, 1).End(xlUp).Row + 1    For r = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1        If r = 2 Or (Cells(r, 2) <> Cells(r - 1, 2) And Cells(r, 2) <> "" And Cells(r - 1, 2)) Then            If r > 2 Then                y = y + 1                Rows(r).Insert            End If            Range("L" & y).Formula = "=SUM(L" & IIf(r = 2, r, r + 1) & ":L" & y - 1 & ")"            Range("N" & y).Formula = "=SUM(N" & IIf(r = 2, r, r + 1) & ":N" & y - 1 & ")"            Range("P" & y).Formula = "=SUM(P" & IIf(r = 2, r, r + 1) & ":P" & y - 1 & ")"            Rows(y).Font.Bold = True            Rows(y).Style = "Currency"            y = r        End If    Nexty = Cells(Rows.Count, 1).End(xlUp).Row + 2Range("H" & y) = "Total do Dia"Range("L" & y).Formula = "=SUM(L2:L" & y - 1 & ")/2"Range("N" & y).Formula = "=SUM(N2:N" & y - 1 & ")/2"Range("P" & y).Formula = "=SUM(P2:P" & y - 1 & ")/2"Rows(y).Font.Bold = TrueRows(y).Style = "Currency"End Sub
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde Wendell, muito obrigado por seu retorno e desculpe a demora do meu, correria de início de mês é complicada.

 

 

Então, testei a sua Macro e ela rodou perfeitamente! Só houve um problema... Quando eu tenho incluir um novo dia na planilha, ou seja, incluir novos dados, ela não roda! Não sei se tem como fazer a Macro rodar em uma área selecionada na planilha ou a partir da célula selecionada (até que não hajam células com dados) ou se isso não é possível.

 

Se necessário eu posso anexar uma outra planilha com mais "dias" para que você entenda. 

 

Agradeço imensamente a sua ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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 publicações 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

×