Untitled

mail@pastecode.io avatar
unknown
plain_text
a year ago
1.8 kB
3
Indexable
Never
Sub CrearGraficaBarras()
    ' Define el rango de datos para el gráfico
    Dim RangoDatos As Range
    Set RangoDatos = ActiveSheet.Range("A1:A5")
    
    ' Crea un gráfico de barras verticales en la hoja de cálculo activa
    Dim Grafico As Chart
    Set Grafico = ActiveSheet.Shapes.AddChart2(251, xlColumnClustered).Chart
    
    ' Establece el rango de datos para el gráfico
    Grafico.SetSourceData Source:=RangoDatos
    
    ' Modifica el título del gráfico
    Grafico.ChartTitle.Text = "Mi Gráfica"
    
    ' Define los colores para los valores mínimo y máximo
    Dim MinColor As Long
    Dim MaxColor As Long
    MinColor = RGB(0, 255, 0) ' verde
    MaxColor = RGB(255, 0, 0) ' rojo
    
    ' Encuentra los valores mínimo y máximo en el rango de datos
    Dim MinValue As Double
    Dim MaxValue As Double
    MinValue = Application.WorksheetFunction.Min(RangoDatos)
    MaxValue = Application.WorksheetFunction.Max(RangoDatos)
    
    ' Aplica el degradado de colores a cada serie del gráfico
    Dim i As Integer
    For i = 1 To Grafico.SeriesCollection.Count
        ' Calcula la posición del valor de la serie en el degradado
        Dim Position As Double
        Position = (Grafico.SeriesCollection(i).Values - MinValue) / (MaxValue - MinValue)
        
        ' Calcula el color para la serie basado en su posición en el degradado
        Dim SeriesColor As Long
        SeriesColor = RGB((1 - Position) * Red(MinColor) + Position * Red(MaxColor), _
                          (1 - Position) * Green(MinColor) + Position * Green(MaxColor), _
                          (1 - Position) * Blue(MinColor) + Position * Blue(MaxColor))
        
        ' Aplica el color a la serie
        Grafico.SeriesCollection(i).Format.Fill.ForeColor.RGB = SeriesColor
    Next i
End Sub