Notifications
Clear all

Ajuda melhorar macro - FOR NEXT


DECOVIOTI
(@decovioti)
Active Member Registered
Entrou: 7 meses atrás
Posts: 17
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 6 meses atrás 2 vezes by DECOVIOTI

ResponderCitar (Quote)
Tags do Tópico
DECOVIOTI
(@decovioti)
Active Member Registered
Entrou: 7 meses atrás
Posts: 17
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 6 meses atrás por DECOVIOTI

ResponderCitar (Quote)
Anderson
(@anderson)
Estimable Member Registered
Entrou: 12 meses atrás
Posts: 172
 
'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 6 meses 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.


ResponderCitar (Quote)
DECOVIOTI
(@decovioti)
Active Member Registered
Entrou: 7 meses atrás
Posts: 17
Topic starter  

@anderson

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

Tenha um bom fds

Abs


Anderson curtiu
ResponderCitar (Quote)