Quiero cambiar el formato de un rango de celdas C7:K35
según el valor de Cell A1
.
Cuando A1
= 1 el formato del número debe ser"_-* #,##0_-;-* #,##0_-;_-* ""-""??_-;_-@_-"
Cuando A1
<> 1 el formato del número debe ser"_-$* #,##0_-;-$* #,##0_-;_-$* ""-""??_-;_-@_-"
Sé que esto deberá hacerse en VBA usando case
, como lo hice antes cuando pregunté en un foro diferente, pero ya no puedo encontrar la pregunta.
Supongo que sería algo como esto:
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
Respuesta1
No es necesario Select
nada excepto la Select Case
declaración.
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