Notifications
Clear all

Limpar célula com Evento Change

2 Posts
1 Usuários
0 Reactions
860 Visualizações
(@rodrigod)
Posts: 35
Eminent Member
Topic starter
 

Bom dia,

Estou tentando criar uma macro que limpe o valor de duas células caso o valor de um dropdown (ActiveX control) mude para qualquer outra opção da lista contida no mesmo.

Exemplo: tenho o drop down na célula A1. Caso O valor desse drop down mude, para qualquer que seja a opção, então B1 e C1 devem ser limpadas.

Comecei fazer o seguinte código para tentar desenvolver a ideia, mas está errado e não estou conseguindo caminhar:

Private Sub Worksheet_Change(ByVal Target As Range)

aux = Target.Value
If Target.Value <> aux Then
Range(Cells(Target.Row, Target.Column + 1), Cells(Target.Row, Target.Column + 2)).Value = ""
End If

End Sub

A ideia aí é guardar o valor da célula em "aux" quando eu clicar nela, e depois verificar se eu mudei o valor dela (no caso, escolhendo outra opção do drop down). Ele até executa a linha dentro do if, porém dá erro logo em seguida... E isto é apenas um teste, caso conseguisse concluir está etapa, iria tentar colocar limites para esse evento para que ele ocorra apenas na coluna A, por exemplo.

Não estou conseguindo fazer downloads e não tenho programas para compilar os arquivos aqui, por isso não mandei exemplo em planilha...

Alguém poderia dar uma ajuda ? Desde já obrigado!

 
Postado : 10/04/2015 8:54 am
(@rodrigod)
Posts: 35
Eminent Member
Topic starter
 

Consegui fazer o que precisava com o código a seguir:

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Column = 43 Then
If Left(Cells(Target.Row, 43).Value, 8) = "SOFTWARE" And Right(Cells(Target.Row, 43 + 1).Value, 2) <> "SW" Then
Cells(Target.Row, Target.Column + 1).Value = ""
Cells(Target.Row, Target.Column + 2).Value = ""
End If
If Left(Cells(Target.Row, 43).Value, 8) = "HARDWARE" And Right(Cells(Target.Row, 43 + 1).Value, 2) <> "HW" Then
Cells(Target.Row, Target.Column + 1).Value = ""
Cells(Target.Row, Target.Column + 2).Value = ""
End If
End If
End Sub

Caso alguém precise de algo parecido está aí uma ideia...

 
Postado : 10/04/2015 12:33 pm