oq reparei é que vc omitiu "
If WbConsolided.Worksheets("Consolided Price List").Range("AH" & Incremental2).Value = WbConsolided.Worksheets("Sheet2").Range("B2").Value Then
Set x = WbConsolided.Worksheets("Sheet2").Range("G2").Value 'aliquota de impostos
para facilitar a leitura e melhorar a execução o certo é adicionar valores fixos em variaveis antes do loop
val_consoli = WbConsolided.Worksheets("Sheet2").Range("B2").Value
Do While ActiveCell <> ""
...
If WbConsolided.Worksheets("Consolided Price List").Range("AH" & Incremental2).Value = val_consoli Then
tbm pode facilitar setando mais longe as variaveis de worksheet
Sub teste()
Incremental = 10
Incremental2 = 7
Dim x As Integer
Set WbConsolided = Workbooks("Consolided Price List - to 2017.xlsm")
Set WdListModel = Workbooks("List Public - Model 2.xlsx")
Set wb_cons_prince = WbConsolided.Worksheets("Consolided Price List")
Set wb_model = WdListModel.Worksheets("Model")
val_consoli = WbConsolided.Worksheets("Sheet2").Range("B2").Value
x = WbConsolided.Worksheets("Sheet2").Range("G2").Value
Do While ActiveCell <> ""
If wb_model.Range("D" & Incremental).Value = wb_cons_prince.Range("B" & Incremental2).Value Then
If wb_cons_prince.Range("AH" & Incremental2).Value = val_consoli Then
WdListModel.Activate
ULT_LINHA = Range("E" & Rows.Count).End(xlUp).Row
Range("H10:H" & ULT_LINHA).FormulaR1C1 = "=RC[1]/RC[-1]"
tier = Range("Tier")
Range("K10:K" & ULT_LINHA).FormulaR1C1 = "=(RC[-2]*tier)/(1-x)"
End If
End If
Incremental = Incremental + 1
Incremental2 = Incremental2 + 1
Loop
End Sub
sei que não está terminado, então nem tentei entender a logica
mas considere em algum loop onde a mesma range vai ser lida mais de uma vez utilizar variavel para compor o valor
tipo
for l=1 to 100
n=cells(l,2).value2
if n>10 then
for c=1 to 100
n2=cells(l,c).value2
if n<>n2 then
n=n+n2
next
cells(l,2).value2=n
next
isso evita algumas intervenções na planilha
Postado : 07/12/2016 6:52 pm