A largura da lista de validação de dados pode ser controlada no Excel 2007 e superior?

1

No Excel 2007, posso adicionar validação de dados a uma célula e fornecer uma lista de valores permitidos.

No entanto, a experimentação sugere que a lista suspensa de validação de dados nunca será exibida em uma largura menor que a largura original de sua célula (no ponto em que a pasta de trabalho foi aberta).

Então, se a coluna da célula era muito grande e o usuário a redimensionou, você acaba com esse tipo de coisa:

Existe alguma maneira de melhorar isso? A largura suspensa pode ser feita para corresponder à largura da coluna sem fechar e reabrir a pasta de trabalho? Escrever algum VBA é uma opção.

    
por David North 12.05.2014 / 20:00

2 respostas

2

Você está certo, isso pode ocorrer quando você altera a largura depois de criar a lista suspensa, mas também às vezes quando há células mescladas presentes. VBA é a única opção. Coloque isso no objeto da planilha e altere o número da coluna para a coluna na qual sua lista está:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Target.Count > 1 Then Exit Sub
   If Target.Column = 4 Then
       Target.Columns.ColumnWidth = 20
   End If
End Sub

Ele procurará alterações na sua lista e se ajustará à largura especificada.

    
por 12.05.2014 / 20:13
1

Não sei se isso funcionará para o Excel 2007, mas acabei de encontrar esse mesmo problema no Excel 2013 e identifiquei uma causa possível para essa situação, o que naturalmente levou a uma solução.

TL; DR: clique uma vez na célula com uma lista suspensa muito ampla, salve a pasta de trabalho e abra a lista suspensa novamente.

Antecedentes: eu fiz uma folha de trabalho para mim porque meu departamento rastreia horas de trabalho por projeto e tarefa, então eu tenho uma dúzia de linhas na minha planilha de tempo para preencher. Eu costumava escrever no Bloco de Notas sempre que eu comecei e parei trabalho em uma tarefa específica, mas como algumas tarefas teriam várias extensões curtas ao longo do dia, criei esta pasta de trabalho onde colocaria as mesmas informações, mas em uma tabela, com cada dia tendo uma planilha separada e depois usando uma Tabela Dinâmica para consolidar essas cinco planilhas em uma que esteja no mesmo layout que a planilha de horas que eu tenho que enviar. Em cada uma das planilhas diárias, a tabela possui validação para o horário final (o horário de início é igual à hora final da linha anterior) e o nome da tarefa, cada um deles destinado a um intervalo de células em outra planilha para a lista de entradas válidas. As colunas de tempo são, obviamente, muito mais estreitas que a coluna de tarefas.

Normalmente, as caixas suspensas de validação correspondem à largura da coluna em que se encontram, mas uma vez notei que apenas na planilha de terça-feira, a lista suspensa era ridiculamente ampla. Eu estava inicialmente confuso, porque eu havia criado cada uma das folhas de trabalho de terça a sexta copiando a segunda-feira; não deveria haver razão para haver qualquer diferença entre terça e quarta-feira.

Demorei algumas semanas até que eu finalmente descobrisse o que estava causando o problema (a primeira pista foi que folha me deu dropdowns muito grandes em um ponto), mas eventualmente eu percebi: Em cada planilha em que uma célula na coluna Tarefa mais ampla era a célula ativa quando eu salvava a pasta de trabalho pela última vez, a coluna End Time mais estreita me dava uma lista suspensa muito ampla - especificamente a mesma largura da Coluna da coluna de tarefas!

A partir disso, foi extremamente fácil encontrar a solução:
Ative uma célula na coluna mais estreita com a validação suspensa (em todas as planilhas que a possuem) e salve a pasta de trabalho.

(Em experimentos posteriores, descobri que salvar com a célula ativa sendo uma sem qualquer validação funcionou igualmente bem.)

    
por 14.07.2016 / 17:13