web-dev-qa-db-fra.com

Excel - puis-je définir une cellule pour qu'elle corresponde à une certaine valeur, quel que soit son contenu?

C'est pour faire une blague à quelqu'un ... pas sûr s'il est possible de faire ce que je veux. Nous distribuons un fichier Excel entre amis pour sélectionner les joueurs d’un tournoi de golf. Je voudrais définir une cellule (appelez-la A1) pour afficher un certain nom (appelez-le Joe) peu importe ce que quelqu'un y tape.

A1 doit être vide jusqu'à ce que quelqu'un essaie de taper un nom. Quand quelqu'un tape un nom - n'importe quel nom - il se change automatiquement en Joe après avoir appuyé sur Entrée.

La mise en forme conditionnelle ne fonctionne pas car elle semble ne traiter que l'apparence de la valeur de la cellule A1.

Une formule ne fonctionne pas car ils verraient quelque chose dans la cellule.

La correction automatique - bien que cela produise exactement l'effet recherché - ne fonctionne pas, car elle est stockée sur mon ordinateur et ne peut pas être transférée avec le fichier.

Des idées?

61
Adam

Comme alternative moins macro, cela ne changera pas la valeur de la cellule, mais changera l'affichage de la cellule. Faites un clic droit sur la cellule en question, puis cliquez sur "Formater les cellules". Dans l'onglet Numéro, cliquez sur Personnalisé, puis entrez le format de numéro personnalisé suivant.

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

Explication: Les formats de nombre Excel comportent quatre parties, séparées par des points-virgules. La valeur de la cellule détermine quelle partie du format numérique est utilisée, et le format ressemble à ceci:

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

Puisque chaque section est une chaîne codée en dur, "Joe" sera affiché quel que soit l'entrée, même si une formule est entrée (à moins que cette formule ne retourne une erreur). Habituellement, les formats de nombres sont utilisés pour afficher les nombres négatifs en rouge, ou aligner les valeurs à la décimale ou autres éléments esthétiques. Mais ils peuvent aussi être utilisés pour déconner avec vos amis.

110
Kyle

Placez la macro d'événement suivante dans la zone de code de la feuille de calcul:

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
9
Gary's Student