Eu tenho uma planilha com células que desejo que sejam editáveis pelo usuário, mas que também quero ter valores "padrão" ou "espaço reservado", sempre que não houver dados inseridos pelo usuário. Existem alguns bons casos de uso para isso:
- Evite erros de fórmula, ao mesmo tempo que 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 que eles os ignorem - eles poderão 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 se pretende inserir na célula, sem a necessidade de um segmento ou documento de “instruções” separado. Isso também eliminaria a necessidade de uma célula “Rótulo” próxima, em alguns casos em que realmente não é apropriado.
Para realizar o que desejo, preciso de alguma fórmula, script ou outra opção de planilha avançada que faça o seguinte:
- Mostre o valor padrão na célula antes que o usuário insira os dados.
- Permitir 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.
- Permita que o usuário substitua livremente (naturalmente, exatamente como faria com qualquer célula "normal") o valor exibido por seu próprio valor ou fórmula e faça com que os dados inseridos pelo usuário sejam encontrados por qualquer fórmula que faça referência à célula.
- Quando a célula for 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 aqui?
Responder1
Não existe uma maneira integrada de fazer isso; você precisará criar a sua própria.
Uma possibilidade é esta:
- Para cada célula para a qual você deseja um padrão, crie um intervalo nomeado com escopo de planilha referenciando essa célula e, no campo de comentário, insira o valor padrão necessário
Adicione o
Workbook_SheetChange
evento do módulo WorkbookPrivate 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 isso faz é:
- Sempre que uma célula é alterada, o código do evento é executado
- Se uma célula que foi alterada estiver vazia
- Procure um intervalo nomeado com escopo de planilha que faça referência à célula
- Se encontrado, copie o comentário do Nome no valor da célula, a conversão para numérico é apropriada
Responder2
Eu uso um método que funciona assim:
- um exemplo simples para registros escolares:
- col A são os títulos das linhas: carteira de estudante, sobrenome, nome, data de nascimento, idade...
- col B é a coluna fantasma: largura 1, justificar à esquerda, aumentar recuo 1, protegido, cor da fonte cinza, sem quebra de texto
- col C são os campos de entrada
- Os valores da coluna B são carregados com o que você deseja mostrar na coluna C como padrão. Os valores podem vir de uma planilha auxiliar, uma fórmula que é atualizada à medida que as células são preenchidas, outra planilha com valores padrão, mensagens de erro...
- então, quando a carteira de estudante é inserida, o sobrenome, nome, data de nascimento, endereço, pais, etc. aparecem imediatamente como valores fantasmas nas linhas abaixo. Não há nada em nenhuma das células da coluna C, portanto os valores fantasmas na coluna B se estendem para a coluna C. (Os valores numéricos e de data devem ser formatados com uma função text().) Depois de verificar as informações do filho, o operador continua preenchendo no horário das aulas, professor de sala...
- Se algo precisa ser alterado, a célula é digitada, o que sinaliza que algo para aquela criança está diferente. (Nome de família, nome dos pais, endereço...)
- ou, o sobrenome e o nome poderiam ser inseridos, deixando o ID em branco, e o valor fantasma mostraria o ID do filho da planilha mestre.
- Uma planilha auxiliar pode mostrar um texto auxiliar que desaparece quando a célula na coluna C é tocada. Ou a lógica da planilha pode determinar que o texto auxiliar não é mais apropriado ou deveria mostrar algo diferente.
Os valores fantasmas são pesquisáveis, podem ser cinza para texto padrão ou vermelho para avisos e atualizados automaticamente à medida que as planilhas que os acompanham são atualizadas.
Uma limitação é que o texto fantasma não pode ser agrupado na coluna C.