Conteúdo
Alguém gosta, mas eu pessoalmente preciso de uma barra de status apenas em 2-3 casos:
- após a filtragem, exibe o número de valores restantes após a seleção
- quando um intervalo é selecionado, ele exibe a soma, a média e o número de células selecionadas
- no caso de arquivos pesados, você pode ver o progresso no recálculo das fórmulas no livro.
Não tanto para uma linha que ocupa quase toda a largura da tela e fica pendurada nela o tempo todo. Vamos tentar expandir esta lista modesta e adicionar mais alguns recursos úteis a ela 🙂
Princípios gerais para gerenciar a barra de status
Gerenciar a barra de status com o Visual Basic é muito fácil. Para exibir seu texto nele, você pode usar uma macro simples:
Sub MyStatus() Application.StatusBar = "Привет!" Finalizar Sub
Após executá-lo, obtemos:
Para restaurar o estado original da barra de status, você precisará do mesmo “anti-macro” curto:
Sub MyStatus_Off() Application.StatusBar = False End Sub
Na versão básica, como você pode ver, tudo é muito simples. Agora vamos tentar desenvolver a ideia…
Endereço do intervalo selecionado na barra de status
No canto superior esquerdo da janela do Excel na barra de fórmulas, você sempre pode ver o endereço da célula atual. Mas se um intervalo inteiro for selecionado, infelizmente, não veremos o endereço de seleção lá - a mesma célula ativa única é exibida:
Para resolver esse problema, você pode usar uma macro simples que exibirá o endereço da área selecionada na barra de status. Além disso, essa macro deve ser iniciada automaticamente, com qualquer alteração na seleção em qualquer planilha - para isso, a colocaremos no manipulador de eventos Alteração de seleção nosso livro.
Abra o Editor do Visual Basic usando o botão de mesmo nome na guia revelador (Desenvolvedor) ou atalhos de teclado Alt esquerdo + F11. Encontre seu livro no canto superior esquerdo do painel Projeto e abra o módulo nele clicando duas vezes Este livro (Esta pasta de trabalho):
Na janela que se abre, copie e cole o seguinte código de macro:
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) Application.StatusBar = "Выделено: " & Selection.Address(0, 0) End Sub
Agora, quando qualquer intervalo for selecionado (incluindo mais de um!), seu endereço será exibido na barra de status:
Para evitar que os endereços de vários intervalos selecionados com Ctrl sejam mesclados, você pode adicionar uma pequena melhoria – use a função Substituir para substituir uma vírgula por uma vírgula por um espaço:
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) Application.StatusBar = "Выделено: " & Replace(Selection.Address(0, 0), ",", ", ") End Sub
Número de células selecionadas na barra de status
Quando qualquer intervalo é selecionado, o número de células selecionadas não vazias é exibido no lado direito da barra de status por padrão. Às vezes você precisa saber o número de alocados. Essa tarefa também pode ser realizada com uma macro simples para manipular o evento de livro SelectionChange, como no exemplo anterior. Você precisará de uma macro como:
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) Dim CellCount As Variant, rng As Range For Each rng In Selection.Areas 'Iterate through all selections RowsCount = rng.Rows.Count 'number of rows ColumnsCount = rng.Columns . Count 'número de colunas CellCount = CellCount + RowsCount * ColumnsCount 'acumula o número total de células Next 'exibe na barra de status Application.StatusBar = "Selecionado: " & CellCount & " células" End Sub
Essa macro percorre todas as áreas selecionadas pelo Ctrl (se houver mais de uma), armazena o número de linhas e colunas em cada área nas variáveis RowsCount e ColumnsCount e acumula o número de células na variável CellCount, que é exibida na barra de estado. No trabalho ficará assim:
Claro, você pode combinar esta e as macros anteriores para exibir o endereço do intervalo selecionado e o número de células ao mesmo tempo. Você só precisa alterar uma penúltima linha para:
Application.StatusBar = "Selecionado: " & Replace(Selection.Address(0, 0), ","", ", ") & " - total " & CellCount & " células"
Então a imagem será bastante maravilhosa:
Bem, acho que você entendeu a ideia. Sugira nos comentários – o que mais seria útil para exibir na barra de status?
- O que são macros, como funcionam, como usá-las e criá-las
- Seleção de coordenadas conveniente em uma planilha do Excel
- Como tornar fórmulas complexas mais visuais