Desejo alterar a formatação de um intervalo de células C7:K35
com base no valor em Cell A1
.
Quando A1
= 1 o formato do número deve ser"_-* #,##0_-;-* #,##0_-;_-* ""-""??_-;_-@_-"
Quando A1
<> 1 o formato do número deve ser"_-$* #,##0_-;-$* #,##0_-;_-$* ""-""??_-;_-@_-"
Sei que isso precisará ser feito em VBA usando case
, como já fiz antes ao perguntar em um fórum diferente, mas não consigo mais encontrar a pergunta.
Imagino que seria algo assim:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1")) Is Nothing Then
case when Range("A1").value = 1 then
Range("C7:K32").Select
Selection.NumberFormat = "_-* #,##0_-;-* #,##0_-;_-* ""-""??_-;_-@_-"
Else
Range("C7:K32").Select
Selection.NumberFormat = "_-$* #,##0_-;-$* #,##0_-;_-$* ""-""??_-;_-@_-"
End If
End Sub
Não há necessidade de
Select
nada, exceto aSelect Case
declaração.