Logo Studenta

manual-de-manipulaci-n-de-gr-ficos-en-excel-desde-vba-14837-downloable-3059356 - Elias Calei

¡Estudia con miles de materiales!

Vista previa del material en texto

Accede a apuntes, guías, libros y más de tu carrera
manual-de-manipulaci-n-de-gr-ficos-en-excel-desde-vba
8 pag.
Descargado por Elias Calei (caleididi@gmail.com)
Encuentra más documentos en www.udocz.com
Crear y modiicar gráicos con VBA
En el ejemplo de hoy vamos a enseñaros como crear gráficos con VBA y modificarlos usando 
también VBA. Las herramientas que ofrece Excel en cuanto a manipulación de gráficos son 
bastante completas. Sin embargo, mediante VBA, podemos sacar mucho más provecho a 
estos gráficos especialmente en cuanto a modificación dinámica se refiere.
En este articulo vamos a explicar como crear un grafico mediante VBA, seleccionar el tipo de 
gráfico, añadir datos y modificar el formato.
Para demostrar estas posibilidades que nos ofrece VBA hemos creado un ejemplo con varias 
series de datos.
Contenido [Ocultar]
• 1 Datos inciales:
• 2 Crear gráicos con VBA
• 3 Seleccionar un gráico existente
• 4 Añadir una serie de datos a un gráico
• 5 Seleccionar una serie de datos de un gráico
• 6 Borrar series de datos de un gráico mediante un bucle
• 7 Editar el titulo del gráico
• 8 Editar los ejes de un gráico:
• 9 Editar el formato de una serie de datos
• 10 Editar la leyenda del gráico
• 11 Ejemplo 1
Datos inciales:
A lo largo de todo este articulo vamos a usar los siguientes datos para nuestro gráfico:
Año 2005
200
6
200
7 2008 2009 2010 2011 2012 201
Serie 1 265 105 25 45 155 133 196 10 128
Serie 2 90 249 186 98 211 121 231 170 220
Serie 3 12 117 222 71 262 224 250 188 1
Serie 4 193 136 262 88 168 132 5 228 14
Para entender mejor los ejemplos mostrados a lo largo del artículo destacar que la tabla se 
encuentra en el rango de “B7:M11”.
El link para descargar el ejemplo completo con todas las macros incluidas esta al final del 
articulo.
Crear gráicos con VBA
Descargado por Elias Calei (caleididi@gmail.com)
Encuentra más documentos en www.udocz.com
Como siempre lo primero abrimos el Editor de Visual Basic (VBE) e insertamos un módulo.
El código básico para crear un gráfico, elegir el tipo de gráfico y asignarle unos datos es el 
siguiente:
Sub crear_grafico()
 Dim grafico As ChartObject
 Dim wks As Worksheet
 Set wks = ActiveWorkbook.Sheets(1)
 Set grafico = wks.ChartObjects.Add(Left:=20, Width:=400, Top:=50, 
Height:=200)
 grafico.Name = "Grafico_1"
 grafico.Chart.ChartType = xlXYScatterLines
 grafico.Chart.SetSourceData Source:=wks.Range("C8:M11")
End Sub
En la segunda linea de código hemos creado una colección de gráficos (ChartObject). Nuestro 
gráfico formara parte de esta colección de gráficos, que a su vez esta englobado en la primera 
hoja del documento. Si en vez de eso hubiéramos escrito la siguiente linea de código 
“ActiveWorkbook.Charts.Add” Excel hubiera añadido una nueva pestaña a nuestro 
documento conteniendo únicamente un gráfico.
Las unidades usadas en la quinta linea del código (Left:=20, Width:=400, Top:=50, 
Height:=200) mostrado arriba corresponden a puntos. En una pulgada (25.4 mm) hay 72 
puntos, es decir nuestro gráfico tendrá un tamaño de 7.05 cm de alto por 14.11 cm de ancho 
(para mas información ver https://support.microsoft.com/en-us/kb/76388)
Left and Top indican el margen que dejamos en nuestro gráfico a la izquierda y arriba 
respectivamente.
A la hora de seleccionar el tipo de gráfico, una vez escrito el símbolo igual en esa linea de 
código, podemos pulsar “Ctrl + espacio” para que VBE nos muestre una lista con todas la 
opciones disponibles. Esta herramienta es muy útil y yo personalmente la uso de manera 
continua, eligiendo entre las opciones disponibles en vez de tratar de averiguar el código 
correcto.
Seleccionar un gráico existente
Descargado por Elias Calei (caleididi@gmail.com)
Encuentra más documentos en www.udocz.com
Mediante la macro mostrada a continuación seleccionamos el gráfico “Grafico_1”. También 
podríamos seleccionar este gráfico haciendo referencia al numero de gráfico 
(“ChartObjects(1)”)
Sub seleccionar_grafico() 
 Dim wks As Worksheet 
 Set wks = ActiveWorkbook.Sheets(1) 
 wks.ChartObjects("Grafico_1").Select 
End Sub
Añadir una serie de datos a un gráico
Mediante el siguiente código vamos a añadir únicamente un serie de datos a nuestro gráfico:
Sub añadir_datos()
Dim cht As Chart
Set cht = ActiveWorkbook.Sheets(1).ChartObjects("Grafico_1").Chart
cht.SeriesCollection.NewSeries.Select
With Selection
 .Name = Range("B8").Value
 .XValues = Range("C7:M7")
 .Values = Range("C8:M8")
End With
End Sub
Podríamos añadir todas la series de datos mediante un bucle:
Sub añadir_datos_2() 
Dim cht As Chart 
Descargado por Elias Calei (caleididi@gmail.com)
Encuentra más documentos en www.udocz.com
Dim i As Integer 
Set cht = ActiveWorkbook.Sheets(1).ChartObjects("Grafico_1").Chart 
For i = 1 To 4 
cht.SeriesCollection.NewSeries.Select 
With Selection 
 .Name = Cells(i + 7, 2).Value 
 .XValues = Range("C7:M7") 
 .Values = Range("C8:M8").Offset(i - 1, 0) 
End With 
Next i 
End Sub
Seleccionar una serie de datos de un gráico
Para seleccionar una serie de datos del gráfico debemos usar el siguiente código:
Sub seleccionar_serie()
Dim wks As Worksheet
Set wks = ActiveWorkbook.Sheets(1)
wks.ChartObjects("Grafico_1").Chart.SeriesCollection(1).Select
End Sub
También podemos escribir el código de la siguiente manera:
Sub seleccionar_serie() 
Dim cht As Chart 
Dim wks As Worksheet 
Descargado por Elias Calei (caleididi@gmail.com)
Encuentra más documentos en www.udocz.com
Set wks = ActiveWorkbook.Sheets(1) 
Set cht = wks.ChartObjects("Grafico_1").Chart 
cht.SeriesCollection("Series1").Select
End Sub
Borrar series de datos de un gráico mediante un bucle
Podemos borrar todas las series de datos de un grafico de varias maneras, entre las cuales 
estan las siguientes dos:
Metodo 1 – Bucle For / Next (link):
For i = cht.SeriesCollection.Count To 1 Step -1
 cht.SeriesCollection(i).Delete
Next i
Metodo 2 – Bucle For / Each
Dim series As series 
For Each series In cht.SeriesCollection 
series.Delete 
Next series
Editar el titulo del gráico
En este ejemplo hemos creado el titulo del gráfico, lo hemos llamado “Grafico 1” y 
posteriormente hemos modificado la letra, tamaño y color del texto.
Sub editar_titulo()
Dim cht As Chart
Set cht = ActiveWorkbook.Sheets(1).ChartObjects("Grafico_1").Chart
cht.HasTitle = True
Descargado por Elias Calei (caleididi@gmail.com)
Encuentra más documentos en www.udocz.com
cht.ChartTitle.Text = "Grafico 1"
With cht.ChartTitle.Font
 .Size = 16
 .Bold = True
 .Color = RGB(255, 0, 0)
End With
End Sub
Editar los ejes de un gráico:
Mostrar / Ocultar los ejes:
cht.Axes(xlCategory, xlPrimary).Delete
cht.Axes(xlValue, xlPrimary).Delete
cht.HasAxis(xlCategory, xlPrimary) = True
cht.HasAxis(xlValue, xlPrimary) = True
Mostrar gridlines:
cht.Axes(xlCategory).HasMajorGridlines = True
cht.Axes(xlCategory).HasMinorGridlines = True
cht.Axes(xlValue).HasMajorGridlines = True
cht.Axes(xlValue).HasMinorGridlines = True
Editar los ejes horizontal y vertical:
cht.Axes(xlCategory).MaximumScale = 2020
cht.Axes(xlCategory).MinimumScale = 2000
cht.Axes(xlCategory).MajorUnit = 2
Descargado por Elias Calei (caleididi@gmail.com)
Encuentra más documentos en www.udocz.com
cht.Axes(xlCategory).MinorUnit = 1
cht.Axes(xlCategory).MajorTickMark = xlTickMarkOutside
cht.Axes(xlCategory).MinorTickMark = xlTickMarkOutside
cht.Axes(xlCategory).ReversePlotOrder = True
cht.Axes(xlCategory).LogBase = 10
cht.Axes(xlCategory).DisplayUnit = xlHundreds
cht.Axes(xlCategory).TickLabelPosition = xlTickLabelPositionNextToAxis
cht.Axes(xlCategory).Crosses = xlMaximum
Editar el formato de una serie de datos
En este ejemplo vamos a modificar el formato de una serie de datos de nuestro gráfico:
Modificar la linea:
srs.Format.Line.ForeColor.RGB = RGB(255, 0,0)
srs.Format.Line.Weight = xlThin
srs.Format.Line.Style = msoLineThinThick
srs.Format.Line.DashStyle = msoLineDashDot
srs.Format.Line.Transparency = 0.5
Modificar los puntos:
srs.MarkerSize = 10
srs.MarkerStyle = xlMarkerStyleDiamond
srs.MarkerBackgroundColor = RGB(0, 255, 0)
srs.MarkerForegroundColor = RGB(0, 0, 255)
Editar la leyenda del gráico
Descargado por Elias Calei (caleididi@gmail.com)
Encuentra más documentos en www.udocz.com
Algunas de las opciones que tenemos para modificar la leyenda de un gráfico son las siguiente
cht.HasLegend = True
cht.Legend.Font.Color = RGB(150, 150, 0)
cht.Legend.Position = xlLegendPositionBottom
cht.Legend.Format.Fill.ForeColor.RGB = RGB(50, 50, 0)
 
Descargado por Elias Calei (caleididi@gmail.com)
Encuentra más documentos en www.udocz.com
	Crear y modificar gráficos con VBA
	Datos inciales:
	Crear gráficos con VBA
	Seleccionar un gráfico existente
	Añadir una serie de datos a un gráfico
	Seleccionar una serie de datos de un gráfico
	Borrar series de datos de un gráfico mediante un bucle
	Editar el titulo del gráfico
	Editar los ejes de un gráfico:
	Editar el formato de una serie de datos
	Editar la leyenda del gráfico

Continuar navegando

Materiales relacionados

140 pag.
Manual-Microsoft-Office-Excel-2010

FAMINAS-BH

User badge image

Ágatha Trilleras

31 pag.
Excel 3

UCL

User badge image

Frank Ferreira

28 pag.
Excel Medio

User badge image

alejandra Montes

52 pag.
EAA162C_Clase4_2018-1

User badge image

Apuntes Generales