Graficas de Gantt
Las cuatro columnas de la tabla son de Excel son:
Títulos (campo caracter de 50 bytes)
Iniciado (campo de fecha = Date )
corridos (número entero hasta 10 dígitos)
faltando (número entero hasta 10 dígitos)
O se le dicta en corridos un número de días
O se le dicta en faltando un número de días
Pero nunca en ambos
Por ejemplo:
Títulos "Elecciones en Venezuela"
Iniciado "07/10/2012"
corridos 0
faltando 11
Tlitukis "nuerte de Gadafi"
iniciado "20/10/2011"
corridos 344
faltando 0
y así sucesívamente los ejemplos
Lo que ocurre es que en mi software se le dicta una fecha de cuando quiere uno el reporte y entonces llena de todos los históricos las fechas del evento y o bien los días que faltan para la fecha dictada o los días corridos desde la fecha dictada.
Cuando vayas a pintar el Gantt
Se resalta con el Mouse los títulos
y además las cuatro columnas con
todas las filas hasta adonde hayan datos.
Y se corre (run) el Macro.
Instrucciones
1. Abra la tabla de Excel exportada llamada (gantt).
2. Presione (ALT+F11) para iniciar el Editor de Visual Basic.
3. En el menú Insertar, haga clic en Módulo.
4. Resalte el código azul y copielo con (CTRL - C)
situado abajo de este menu y péguelo usando (CTRL-V) en la hoja de módulo de Visual Basic:
5. Presione (ALT+F11) para volver a Excel.
6. Estando en la tabla de excel llamada Gantt resalte todos los datos.
7. En el menú Herramientas, elija Macro y a continuación, haga clic en Macros.
8. Haga clic en Diagrama de Gantt y a continuación, haga clic en Ejecutar.
9. Escriba el título de gráfico cuando se lo solicita.
El diagrama de Gantt aparece en una hoja nueva de gráfico.
Puede agregar cualquier formato adicional que desee.
El Macro......
Option Explicit
Sub Gantt_Chart()
Dim rge As String
Dim ValueAxisMinValue As Date
Dim shtname As String
Dim Title As String, aChart As Chart
rge = Selection.Address()
ValueAxisMinValue = Selection.Cells(2, 2).Value
Title = InputBox("Dicte Un Título")
shtname = ActiveSheet.Name
Application.ScreenUpdating = False
Set aChart = Charts.Add
With aChart
.ChartWizard Source:=Sheets(shtname).Range(rge), _
Gallery:=xlBar, Format:=3, PlotBy:=xlColumns, _
CategoryLabels:=1, SeriesLabels:=1, HasLegend:=1, _
Title:=Title, CategoryTitle:="", ValueTitle:="", _
ExtraTitle:=""
.Legend.Delete
With .SeriesCollection(1)
With .Border
.Weight = xlThin
.LineStyle = xlNone
End With
.InvertIfNegative = False
.Interior.ColorIndex = xlNone
End With
With .Axes(xlCategory)
.ReversePlotOrder = True
.TickLabelSpacing = 1
.TickMarkSpacing = 1
.AxisBetweenCategories = True
End With
With .Axes(xlValue)
.MinimumScale = ValueAxisMinValue
.MaximumScaleIsAuto = True
.MinorUnitIsAuto = True
.MajorUnitIsAuto = True
.Crosses = xlAutomatic
.ReversePlotOrder = False
.ScaleType = False
.HasMajorGridlines = True
.HasMinorGridlines = False
End With
End With
Application.ScreenUpdating = True
End Sub