Notifications
Clear all

Ajuda melhorar macro - FOR NEXT

4 Posts
2 Usuários
1 Reactions
1,563 Visualizações
(@decovioti)
Posts: 17
Active Member
Topic starter
 

Ola Pessoal

Gostaria de pedir uma ajuda, caso seja possivel.

Estou me dedicando a aprender o VBA e consegui criar a macro abaixo, me baseando em exemplos aqui no fórum, cuja função e basicamente realizar duas ações: 

 diferença entre os valores da coluna "37" e coluna "31" e inserir na coluna "42" uma string no formato "MMM YYYY" 

Gostaria de saber se haveria um jeito mais intelligente de escrever a macro abaixo, principalmente com relação ao For para realizar o loop. A base de dados que estou testando essa macro tem 3000 registros aproximadamente.

Sub ValueIncreaseFormula()
   
    'Set up Variables
    Dim lRow, lLast As Double
    Dim i           As Integer
    lLast = Range("A1048576").End(xlUp).Row
    'Loop to add the formula column AK (-)column AE 
    Range("AO2").Select
    For i = 2 To lLast
        Cells(i, 41) = Cells(i, 37) - Cells(i, 31)
            Selection.NumberFormat = "0.0"
        Cells(i, 42) = "=TEXT(RC[-33],""MMM YYYY"")"
    Next
    'Insert the borders to the dataset
    With Range("A1")
        .CurrentRegion.Borders.LineStyle = xlContinuous
    End With
    'User Message
     MsgBox "Process Finished", vbOKOnly + vbInformation, "System"
End Sub

Muito Obrigado


Editado pela Moderação. Motivo: Procure utilizar o botão Código (< >) sempre que for inserir código VBA ou Fórmulas.

Este tópico foi modificado 4 anos atrás 2 vezes by DECOVIOTI
 
Postado : 28/08/2020 3:59 am
Tags do Tópico
(@decovioti)
Posts: 17
Active Member
Topic starter
 

Ola, Pessoal

Será que alguém poderia me ajudar com o meu post, por favor?

Desde já, agradeço a atenção de todos 

Muito Obrigado

Este post foi modificado 4 anos atrás por DECOVIOTI
 
Postado : 29/08/2020 5:34 am
(@anderson)
Posts: 203
Reputable Member
 
'Caso queira aprender Excel VBA, acesse o canal EVBA no Youtube.

Sub ValueIncreaseFormula()

   
    'Set up Variables
    Dim lRow, lLast As Double
    Dim i           As Integer
    lLast = Range("A1048576").End(xlUp).Row
    'Loop to add the formula column AK (-)column AE 
 
    For i = 2 To lLast
        Cells(i, 41) = Cells(i, 37) - Cells(i, 31)
          Range("AO" & i).NumberFormat = "0.0"
        Cells(i, 42) = "=TEXT(RC[-33],""MMM YYYY"")"
    Next
    'Insert the borders to the dataset
    With Range("A1")
        .CurrentRegion.Borders.LineStyle = xlContinuous
    End With
    'User Message
     MsgBox "Process Finished", vbOKOnly + vbInformation, "System"
End Sub
Este post foi modificado 4 anos atrás 2 vezes por Anderson

Em 90% dos casos em que não se anexa o arquivo, ocorrem mal-entendidos, gerando perda de tempo de ambos os lados.

 
Postado : 29/08/2020 10:46 am
(@decovioti)
Posts: 17
Active Member
Topic starter
 

@anderson

Ola
Muito Obrigado pela ajuda e pela informacao do canal site.

Tenha um bom fds

Abs

 
Postado : 29/08/2020 8:20 pm
Anderson reacted