Ajuda melhorar macr...
 
Notifications
Clear all

Ajuda melhorar macro - FOR NEXT


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

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.

Responder
Tags do Tópico
3 Respostas
DECOVIOTI
Posts: 17
Registered
Topic starter
(@decovioti)
Active Member
Entrou: 10 meses atrás

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

Responder
Anderson
Posts: 180
Registered
(@anderson)
Estimable Member
Entrou: 1 ano atrás
'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
Responder
1 Responder
DECOVIOTI
Registered
(@decovioti)
Entrou: 10 meses atrás

Active Member
Posts: 17

@anderson

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

Tenha um bom fds

Abs

Responder