Crear gráfico de columna en celda - Consejos de Excel

Tabla de contenido

Un lector de la República Checa preguntó sobre la creación de un gráfico en la celda para ilustrar un porcentaje.

Si el valor en una celda era 37%, ¿cómo puedo llenar el 37% de la celda desde la parte inferior con un color?

Mala Singh de nuestra división de Gráficos ideó esta interesante solución para producir el efecto deseado. Mala construyó una hoja de trabajo en la que cada fila se compone de 2 filas fusionadas. Las celdas B2 y B3 se fusionan en una sola celda. Cuando se cambia el valor en B2, un poco de código VBA en el panel de la hoja de trabajo ajustará automáticamente la altura de la fila 2 y la fila 3. La celda C3 es de color azul y la celda C2 es de color blanco. El efecto es que la columna C parece mostrar un gráfico de columnas en la celda. Esta imagen muestra varias alturas de la barra azul en las celdas C2 a C13.

El primer paso es fusionar las celdas B2 y B3 en una sola celda. Seleccionará las celdas B2 y B3. En el menú, seleccione Formato, Celdas. Vaya a la pestaña Alineación. Marque la casilla para Combinar celdas. Esto hará que B2 y B3 actúen como una sola celda llamada B2.

Deje la celda C2 sin relleno y use cualquier relleno de color para la celda C3.

El código para esta técnica no se coloca en un módulo regular. Es un código de "controlador de eventos" y debe colocarse en el módulo de código para esta hoja de trabajo en particular. Lea el artículo Macro de eventos para agregar ruta y nombre de archivo al encabezado de Excel para obtener una imagen visual de cómo abrir el módulo de código para una hoja de trabajo.

Ingrese el siguiente código en el módulo de código para Sheet1 (o cualquier hoja con la que esté trabajando).

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

Puede repetir el proceso de fusionar pares de celdas en la columna B.

Gracias a Mala Singh por esta solución. Mala puede diseñar soluciones de gráficos personalizadas para satisfacer cualquier necesidad. Contribuyó al capítulo de gráficos en VBA y Macros para Excel.

Articulos interesantes...