Quero 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_-;_-$* ""-""??_-;_-@_-"
Eu 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.
Estou supondo 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
Responder1
Não há necessidade de Select
nada, exceto a Select Case
declaração.
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1")) Is Nothing Then
select case Range("A1").value
case 1
Range("C7:K32").NumberFormat = "_-* #,##0_-;-* #,##0_-;_-* ""-""??_-;_-@_-"
case Else
Range("C7:K32").NumberFormat = "_-$* #,##0_-;-$* #,##0_-;_-$* ""-""??_-;_-@_-"
end select
End If
End Sub