Notifications
Clear all

Alterar valores de vários itens de uma única vez

3 Posts
2 Usuários
0 Reactions
753 Visualizações
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Ola Pessoal,

Estou tentando criar uma rotina para ALTERAR valores de vários itens de uma única vez. Consegui chegar na rotina abaixo, porém ela esta bem lenta.

Como eu ainda sou um desenvolvedor "meia boca" gostaria que alguem me ajudasse a otimizar a rotina.

Grato desde já

Sub ALTERA()

Dim x As Variant
Dim i As Variant
Dim LINHA, LinhaFinal As Variant

Dim p As Double
Dim div As Double
Dim valor As Double
Dim result As Variant

p = TextBox1
div = 100
valor = 0

    For x = 1 To LISTA.ListItems.Count
    
            
            LinhaFinal = Sheets("PROD").Range("A65000").End(xlUp).Row
          
            For LINHA = 2 To 5000
              valor = Sheets("PROD").Range("G" & LINHA)
            If Sheets("PROD").Range("A" & LINHA).Value = (LISTA.ListItems(x)) And Sheets("PROD").Range("J" & LINHA).Value = ComboBox1.TEXT Then
             Sheets("PROD").Range("G" & LINHA) = Sheets("PROD").Range("G" & LINHA) + valor * p / div
             
            LINHA = LINHA + 1
            End If
            Next LINHA
     
    Next
    
End Sub

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 29/12/2014 6:28 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Estou colocando um modelo pra facilitar o entendimento

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 29/12/2014 7:01 pm
selmo
(@selmo)
Posts: 236
Estimable Member
 

Só uma coisinha, porque não define uma rotina para verificar a última linha preenchida, assim evitando ter que executar a macro em todas as células, mesmo as vazias.

"A mente que se abre a uma nova ideia jamais voltará ao seu tamanho original."
Albert Einstein

 
Postado : 29/12/2014 7:11 pm