Um leitor da República Tcheca perguntou sobre a criação de um gráfico na célula para ilustrar uma porcentagem.
Se o valor em uma célula era 37%, como posso preencher 37% da célula de baixo com uma cor?

Mala Singh, da nossa divisão de gráficos, apresentou esta solução interessante para produzir o efeito desejado. Mala construiu uma planilha em que cada linha é, na verdade, composta por 2 linhas mescladas. As células B2 e B3 são mescladas em uma única célula. Quando o valor em B2 é alterado, um pouco de código VBA no painel da planilha ajustará automaticamente a altura da linha 2 e linha 3. A célula C3 é colorida em azul e a célula C2 em branco. O efeito é que a coluna C parece mostrar um gráfico de colunas na célula. Esta imagem mostra várias alturas da barra azul nas células C2 a C13.

A primeira etapa é mesclar as células B2 e B3 em uma única célula. Você selecionará as células B2 e B3. No menu, selecione Formatar, Células. Vá para a guia Alinhamento. Marque a caixa para Mesclar células. Isso fará com que B2 e B3 atuem como uma única célula chamada B2.
Deixe a célula C2 sem preenchimento e use qualquer preenchimento de cor para a célula C3.
O código para esta técnica não é colocado em um módulo regular. É um código de "manipulador de eventos" e deve ser colocado no módulo de código para esta planilha específica. Leia o artigo Macro de evento para adicionar caminho e nome de arquivo ao cabeçalho do Excel para ver como abrir o módulo de código de uma planilha.
Insira o código a seguir no módulo de código para Folha1 (ou qualquer folha com a qual você está trabalhando).
Private Sub Worksheet_Change(ByVal Target As Range) Dim cell As Range For Each cell In Target.Cells If cell.Column = 2 And cell.Row> 1 Then If cell.Value> 1 Or cell.Value < 0 Then cell.Select MsgBox ("Value must be between 0 and 100%") End If If IsEmpty(cell) Or cell.Value = 0 Then cell.Range("B1:B2").RowHeight = 25 'cell.Range("B2").Interior.ColorIndex = xlNone Else On Error Resume Next cell.Range("B1").RowHeight = 50 * (1 - cell.Value) With cell.Range("B2") .RowHeight = 50 * cell.Value '.Interior.Color = RGB(0, 0, 255) On Error GoTo 0 End With End If End If Next End Sub
Você pode repetir o processo de mesclar pares de células na coluna B.
Agradecimentos a Mala Singh por esta solução. Mala pode projetar soluções de gráficos personalizadas para atender a qualquer necessidade. Ele contribuiu para o capítulo de gráficos em VBA e Macros para Excel.