Redonda os valores da célula ao final da edição no Excel

3

Eu quero construir uma planilha que quando os números são inseridos em uma célula e o usuário termina a edição nessa célula, eles são automaticamente arredondados para o 0.25 mais próximo. Eu não quero ter duas colunas, uma para o valor original e outra para o valor arredondado. Isso é possível e, se assim for; como alguém conseguiria isso?

Isso é o que o fluxo de trabalho seria:

  • Tipos de usuário 2.30 em uma célula
  • Guias do usuário para a próxima célula ou ocorrências inseridas para sair da célula
  • O valor da célula muda de 2,3 para 2,25

Eu também quero que o valor da célula seja 2.25, não quero que o valor seja 2.30, mas formatado para aparecer como 2.25.

    
por Aran Mulholland 03.07.2015 / 01:42

2 respostas

2

É muito fácil no VBA. Basta criar esta sub-rotina:

Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = False
    Target.Value = Round(4 * Target.Value) / 4
    Application.EnableEvents = True
End Sub

O Excel chamará essa rotina sempre que algo na planilha for alterado. O

Application.EnableEvents = False

instrução desativa temporariamente essa invocação automática para evitar a declaração Target.Value = … de fazer com que a rotina seja invocada recursivamente. Consulte Como adiciono o VBA no MS Office? para informações gerais sobre o uso do VBA.

    
por 03.07.2015 / 08:02
1

O mais próximo que posso obter sem o VBA está usando a Validação de dados. Ele não alterará o valor, mas alertará o usuário de que ele inseriu um valor inválido. Observe que você pode "enganar" a validação de dados no Excel colando de fora do intervalo validado por dados, portanto, se for vital, essa provavelmente não é a solução ideal.

A célula em questão deve ser selecionada, em seguida, vá para Dados / validação e escolha Permitir "Personalizada" e uma fórmula de =MOD(A2,0.25)=0 (esta fórmula é válido para a célula A2). Você pode então ir para a guia "Alerta de erro" e alterar a mensagem de erro para "Por favor, informe um valor que termine com 0,25, 0,5, 0,75 ou um número inteiro nesta célula"

A melhor maneira de enviar isso para uma coluna inteira é fazer uma única célula e copiá-la para muitas outras células. A validação de dados deve se mover de acordo (para que não seja sempre baseada na célula A2 - embora isso seja possível usando $ A $ 2)

    
por 03.07.2015 / 07:00