Existe uma maneira de ter valores “default” ou “placeholder” no Excel?

2

Eu tenho uma planilha com células que eu quero que seja editável pelo usuário, mas também quero ter valores "default" ou "placeholder", sempre que não houver dados inseridos pelo usuário. Há alguns bons casos de uso para isso:

  • Evite erros de fórmulas, enquanto fornece suposições razoáveis quando um usuário não inseriu (ou excluiu) seu próprio valor.
    • Eu poderia usar a formatação condicional para alertar o usuário sobre os valores padrão, de modo a evitar sua ignorância sobre eles - eles podem então fazer uma escolha informada sobre se esse valor ainda é apropriado ou não para os cálculos pretendidos.
  • Forneça uma breve descrição do que deve ser inserido na célula, sem precisar ter um segmento ou documento de "instruções" separado. Isso também eliminaria a necessidade de uma célula "Label" próxima, em alguns casos em que ela não é realmente apropriada.

Para realizar o que eu quero, preciso de uma fórmula, script ou outra opção de planilha avançada que faça o seguinte:

  • Mostrar o valor padrão na célula antes que o usuário insira dados.
  • Permite que o valor padrão seja encontrado por qualquer fórmula que faça referência à célula, quando não houver dados inseridos pelo usuário nessa célula.
  • Permitir ao usuário livremente (naturalmente, exatamente como faria com qualquer célula "normal") sobrescrever o valor exibido com seu próprio valor ou fórmula, e ter os dados inseridos pelo usuário encontrados por qualquer fórmula que faça referência à célula. / li>
  • Quando a célula é apagada pela exclusão da entrada do usuário, reverta para o valor padrão.

Existe uma maneira de fazer isso no Excel, ou estou pedindo muito de um programa de planilha eletrônica aqui?

    
por Iszi 28.09.2012 / 22:41

1 resposta

1

Não há uma maneira de fazer isso, você precisará criar o seu próprio.

Uma possibilidade é esta:

  1. Para cada célula para a qual você deseja um padrão, crie um intervalo nomeado no escopo da planilha que faça referência a essa célula e, no campo de comentário, insira o valor padrão necessário
  2. Adicione o módulo de pasta de trabalho Workbook_SheetChange event

    Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
        Dim nm As Name
        Dim cl As Range
    
        On Error Resume Next
        For Each cl In Target.Cells
            If IsEmpty(cl) Then
                For Each nm In Sh.Names
                    If nm.RefersToRange.Address = cl.Address Then
                        Application.EnableEvents = False
                        If IsNumeric(nm.Comment) Then
                            nm.RefersToRange.Value = Val(nm.Comment)
                        Else
                            nm.RefersToRange.Value = nm.Comment
                        End If
                        Application.EnableEvents = True
                        Exit For
                    End If
                Next
            End If
        Next
    End Sub
    

O que isto faz é:

  • Sempre que uma célula é alterada, o código do evento é executado
  • Se uma célula que mudou está vazia
    • Procure por um Intervalo Nomeado no escopo da planilha que faça referência à célula
    • Se encontrado copiar o comentário do nome para o valor da célula, a conversão para numérico é apropriada
por 29.09.2012 / 02:27