Notifications
Clear all

Arrumando Formulas no VBA

4 Posts
3 Usuários
0 Reactions
1,036 Visualizações
(@luisangy)
Posts: 21
Eminent Member
Topic starter
 

Boa tarde amigos,

Tenho tido um problema recorrente e queria automatiza-lo. Porém não consigo, é sobre arrumar as formulas divergentes.

Tenho uma planilha na qual não consegui anexa-la por ser muito grande, na aba "Real" tenho uma celula na coluna A que fica marcada de laranja, todas as descrições abaixo dela estão com divergências nas fórmulas. O processo que eu faço manualmente e queria otimizar é o seguinte:

Eu todos dias atualizo a aba "base" com novas informações, clico em atualizar tudo e vou na aba "Real" ver se tenho descrições abaixo da linha laranja. Se sim, copio uma descrição, vou na aba "Base", filtro de texto > È igual a... e colo a descrição, assim me aparece todas descrições iguais.

As descrições são feitas através de formulas, sendo elas: ARRUMAR(CONCATENAR(xxxxx) ou somente CONCATENAR. O que eu tenho que fazer é padronizar todas as descrições do meu filtro com uma dessas formulas, após feito isso eu clico em atualizar no excel novamente, se essa descrição nao estiver abaixo da linha laranja na aba "real" coluna B mais, é porque foi concertada. Se ela persistir la, volto na aba base e coloco a outra fórmula. Ex: Se coloquei Arrumar(Concatenar) em todas descrições e não sumiu da aba Real após atualizar, volto e deixo somente concatenar. Atualizado novamente e funciona..

Gostaria de fazer isso no VBA porque toma muito de meu tempo, ja tentei mas nao consegui sozinho. Agradeço!

 
Postado : 21/02/2017 11:24 am
(@alminen)
Posts: 77
Trusted Member
 

Não parece muito complicado, porém, faltou o anexo.

 
Postado : 21/02/2017 11:36 am
(@mprudencio)
Posts: 2749
Famed Member
 

Crie um exemplo menor e poste o arquivo.

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 21/02/2017 12:14 pm
(@luisangy)
Posts: 21
Eminent Member
Topic starter
 

Não consegui anexar o arquivo. Mas criei uma macro que funcionou, segue caso vocês tenham sugestão de melhorias:

Dim fam As Variant
Dim a As Integer
Dim linvazia As Long
Dim vFam As Variant
Application.ScreenUpdating = False

Sheets("Real").Activate
fam = ActiveCell
Sheets("base").Activate
ActiveSheet.Range("$B$1:$B$700000").AutoFilter Field:=1, Criteria1:=fam, Operator:=xlAnd
linvazia = Range("B1001").End(xlDown).Row + 1

   For a = 1000 To linvazia + 1
 If Cells(a, 2).Rows.EntireRow.Hidden = False Then
 If Cells(a, 2).Interior.ColorIndex = 35 Then
  Cells(a, 2).Select
 vFam = ActiveCell.Row
 Cells(a, 2).FormulaLocal = "=ARRUMAR(CONCATENAR(O" & vFam & ";"" "";P" & vFam & ")) "
Range("B" & a).Copy Destination:=Range(Selection, Selection.End(xlDown))
 Exit For
 End If
 End If
 Next
 
 Sheets("Real").Activate
  ActiveWorkbook.RefreshAll
   If ActiveCell = fam Then
    Sheets("base").Activate
    Cells(a, 2).FormulaLocal = "=CONCATENAR(O" & vFam & ";"" "";P" & vFam & ")"
     Cells(a, 2).Select
     Range("B" & a).Copy Destination:=Range(Selection, Selection.End(xlDown))
     End If
  
  
  Sheets("Real").Activate
  ActiveWorkbook.RefreshAll
  Application.ScreenUpdating = True
 
Postado : 24/02/2017 7:52 am