Boa noite,
Tenho uma dúvida relativamente a um código VBA. Pretendo, após um processo, repor as fórmulas numa determinada linha. Utilizei o seguinte código:
Sub ReporValores()
'
Application.ScreenUpdating = False
Sheets("Análises").Unprotect ("123")
Range("V7").Select
ActiveCell.FormulaR1C1 = "=IF(OR(RC15="""",RC[-7]=""A definir""),"""",VLOOKUP(RC15,Base_Dados,'Base de Dados'!R1C20,FALSE))"
Range("W7").Select
ActiveCell.FormulaR1C1 = "=IF(OR(RC15="""",RC[-8]=""A definir""),"""",VLOOKUP(RC15,Base_Dados,'Base de Dados'!R1C21,FALSE))"
Range("X7").Select
ActiveCell.FormulaR1C1 = "=IF(OR(RC15="""",RC[-9]=""A definir""),"""",VLOOKUP(RC15,Base_Dados,'Base de Dados'!R1C23,FALSE))"
Sheets("Análises").Protect ("123")
Application.ScreenUpdating = True
MsgBox "Os valores foram repostos."
End Sub
O problema é que se eu introduzir uma coluna na base de dados, este código não é flexível, pelo que depois irá repor as fórmulas nas células erradas. Existe alguma forma de tornar este processo mais flexível e que eu possa acrescentar colunas ou retirar sem problemas?
Obrigado e bom ano a todos.
Postado : 02/01/2013 3:43 pm