Excel - posso definir uma célula como igual a um determinado valor, não importando o que for digitado nela?

61

Isso é para brincar com alguém ... não tenho certeza se é possível fazer o que eu quero. Estamos circulando um arquivo do Excel entre amigos para selecionar jogadores para um torneio de golfe. Eu gostaria de definir uma célula (chamá-lo A1) para mostrar um certo nome (chamá-lo de Joe), não importa o que alguém digita nele.

A1 deve ficar em branco até que alguém tente digitar um nome nele. Quando alguém digita um nome - qualquer nome - ele muda automaticamente para Joe depois que eles entram.

A formatação condicional não funciona como aparece, apenas aborda a aparência do valor na célula A1.

Uma fórmula não funciona porque eles veriam algo na célula.

Correção automática - embora tenha o efeito exato que estou procurando - não funciona como b / c que está armazenado no meu computador e não seria transferido com o arquivo.

Alguma idéia?

    
por Adam 29.09.2015 / 17:03

2 respostas

110

Como alternativa sem macro, isso não alterará o valor da célula, mas alterará a exibição da célula. Clique com o botão direito do mouse na célula em questão e clique em "Formatar células". No separador numérico, clique em Personalizar e, em seguida, introduza o seguinte formato numérico personalizado

"Joe";"Joe";"Joe";"Joe"

Explicação: Os formatos numéricos do Excel têm quatro partes, separadas por ponto e vírgula. O valor da célula determina qual parte do formato numérico é usada e o formato é assim:

[positive];[negative];[zero];[text] 

Como cada seção é uma string codificada, "Joe" será exibido, independentemente da entrada, mesmo se uma fórmula for inserida (a menos que essa fórmula retorne um erro). Geralmente, os formatos numéricos são usados para exibir números negativos em vermelho, ou alinhar valores no decimal, ou outros itens cosméticos. Mas eles também podem ser usados para mexer com seus amigos.

    
por 29.09.2015 / 18:39
9

Coloque a seguinte macro de eventos na área de código da planilha:

Private Sub Worksheet_Change(ByVal Target As Range)
   If Intersect(Range("A1"), Target) Is Nothing Then Exit Sub
   Application.EnableEvents = False
      Range("A1").Value = "Joe"
   Application.EnableEvents = True
End Sub
    
por 29.09.2015 / 17:08