Esta é minha macro. O erro 5 ocorre na última linha. Veja meus comentários em verde dentro da macro. Se substituir todos os Selection por Target, o resultado é o mesmo.
Public Sel As Range
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column > 50 Or Target.Row > 110 Then Exit Sub
'Aqui eu faço uma formatação condicional em uma aba chamada "Mapa". A macro é executada
'sempre que o usuário altera a(s) células selecionadas. Por exemplo, o usuário seleciona
'a célula A1 e isso executa automaticamente esta macro. Como isso consome bastante o
'processamento, coloquei na primeira linha da macro uma verificação que só executa a macro
'se a célula selecionada estiver dentro de alguns limites.
'Agora vamos ao problema: da maneira como está a macro, se o usuário selecionar a célula
'A1 cinco vezes, essa macro será executada INTEIRA por cinco vezes, consumindo o processamento
'e tornado a macro ineficiente. Para evitar isso, quero inserir na aba "Plan1" um valor
'qualquer nas mesmas células de Target. Ou seja, se o usuário alterar a célula "A1" na
'aba "Mapa", a macro insere o número 1 em "A1". Daí antes de executar a macro, eu faria
'uma verificação se "A1" contém o valor 1.
ActiveSheet.Unprotect Sn
With Selection.Interior
.Pattern = xlNone
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, Formula1:="=0"
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
Selection.FormatConditions(1).Font.ThemeColor = xlThemeColorDark1
Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, Formula1:="=""x"""
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
Selection.FormatConditions(1).Interior.Color = 255
Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, Formula1:="=1"
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
Selection.FormatConditions(1).Interior.Color = 16772300
Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, Formula1:="=2"
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
Selection.FormatConditions(1).Interior.Color = 6736896
Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, Formula1:="=3"
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
Selection.FormatConditions(1).Interior.Color = -6684673
Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, Formula1:="=4"
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
Selection.FormatConditions(1).Interior.Color = -26317
Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, Formula1:="=5"
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
Selection.FormatConditions(1).Interior.Color = -6697729
Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, Formula1:="=6"
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
Selection.FormatConditions(1).Interior.Color = -16750900
Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, Formula1:="=7"
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
Selection.FormatConditions(1).Interior.Color = -6279056
Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, Formula1:="=8"
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
Selection.FormatConditions(1).Interior.ThemeColor = xlThemeColorDark1
Selection.FormatConditions(1).Interior.TintAndShade = -0.349986266670736
ActiveSheet.Protect Sn
Sel = Selection.Address(False, False)
Sheets("Plan1").Cells(Sel).Value = 1
End Sub
Não se esqueça de marcar o tópico como resolvido se a resposta for satisfatória.
Postado : 09/11/2015 8:37 pm