domingo, 6 de septiembre de 2009

Graficos(Chart) - Excel - Excel Charts 2

Cambiar el tipo de Chart
------------------------

Sub ChangeChartType()

'Cambiando el tipo de Chart

ActiveChart.Type = xl3DPie
ActiveChart.ChartType = xl3DLine

'Segun veo las 2 formas son validas para cambiar el tipo de chart
'de igual manera puedes seleccionar la constante xl3DPie y presionar CTRL + J
'y asi accedes a la lista de otros tipos de charts
'o tambien puedes probar grabando tus propias macros y asi verificas los tipos disponibles de manera sencilla

End Sub



Sub ConvertChartInsheet()

'De igual manera puede convertir el Chart activo en una nueva hoja de grafico
ActiveChart.Location Where:=xlLocationAsNewSheet, Name:=ActiveChart.Parent.Name

End Sub

Eliminar los graficos de la hoja activa

Sub DeleteAllcharts()

ActiveSheet.ChartObjects.Delete

End Sub


'eliminar todas las hojas de chart del libro

Sub DeleteAllcharts1()

ActiveWorkbook.Charts.Delete

End Sub


En la sgte entrada trataremos sobre los elementos propios del Chart
Chart area,Plot area,legend,ejes,etc..

Graficos(Chart) - Excel - Excel Charts 1

Modelo de objetos - Grafico(Chart)
---------------------------------
Application
Workbook
Worksheet
ChartObjets
Chart

Conocinedo esta estructura para el modelo de objetos - grafico podra acceder a un grafico determinado para modificarlos segun guste.

Activar un grafico mediante su index correspondiente ,es decir el numero de index que le corresponde dentro de la coleccion .

De aqui en adelante sera mejor refererise al grafico como Chart(traducido) es mas practico porque asi se emplea en el codigo.


un ejemplo sencillo seria el activar el chart numero 3 de su hoja..(..claro siempre exista)

ActiveSheet.ChartObjects(3).Activate


De igual manera puede elimininar al chart de index 2 .
Eliminar un chart determinado
ActiveSheet.ChartObjects(2).Delete


Cambiar el nombre a un chart determinado
ActiveChart.Parent.Name = "ChartDeudas"

Cambiar el titulo de un chart
ActiveChart.ChartTitle.Text = "Deudas"

Activando un grafico mediante su nombre
Activesheet.Chartobjects("ChartDeudas").activate


Recuperar el nombre del chart activo
-----------------------------------

Msgbox ActiveChart.Name

'Te devolvera una cadena de esta forma primero la referencia a la hoja y luego el nombre del chart.
Hoja1 Gráfico 1


Msgbox ActiveChart.parent.Name
'Te devolvera exactamente lo que imagino que buscabas...solo el nombre del chart

Chart 1

En la proxima entrada la continuacion de charts..

domingo, 24 de mayo de 2009

La propiedad Offset Excel - VBA

La propiedad Offset
--------------------
La propiedad offset permite 2 argumentos que corresponden a la posicion relativa a la celda.

Ejemplo
--------

Object.offset(RowOffset,ColumnOffset)

ActiveCell.Offset(0, 0).Select 'como hemos colocado 0 para los argumentos de fila y columna
la seleccion sigue siendo nuestra celda activa inicial.


Activecell.0ffset(1,0).select 'ahora la celda activa se encuentra una fila por debajo


'si nuestra celda activa inicial hubise sido A1 ahora la celda activa seria A2

Msgbox Activecell.0ffset(1,0).address


Es importante tambien tener en cuenta que obtendremos un error si asignamos o nos tratamoos de desplazar a una rango inexistente.



por ejemplo ActiveCell.Offset(-5, 0).Select 'nos arrojara un error porque no existe el rango que se trata de seleccionar que seria 5 filas arriba de A2.


De igual manera podemos desplazarnos entre las colmnas variando el valor para ColumnOffset

ActiveCell.Offset(0, 1).Select 'desplazarse una columna a la derecha

Tambien podemos usar ambos argumentos(RowOffset,ColumnOffset) para indicar hacia donde desplazarnos o asignar un valor a determinada celda.


Sub sample_vba_offset()



Dim RANGO As Range

Set RANGO = Range("B1")



RANGO.Offset(2, 4).Value = "27 DE MAYO GRAN FINAL DE LA Champions league - 2009"

'nos movemos 2 filas por debajo y 4 columnas a la derecha


End Sub


'Ojo...de igual manera obtendremos un error si tratamos de mover o asignar un valor hacia un rango no existente.

ActiveCell.Offset(0, -3).Select 'desplazarse 3 columnas a la Izquierda

domingo, 1 de febrero de 2009

Principales Eventos del formulario(Initialice,Activate,QueryClose


Principales Eventos del formulario
----------------------------------

Initialice.
**********
Se ejecutara antes de que cargue o se muestre el formulario de usuario

Activate.
********
Se ejecuta cuando se muestra el formulario.

QueryClose
----------
Se ejecuta antes de descargar el formulario

Terminate
---------
Se ejecuta despues de descargar el formulario


*El primer evento que se ejecutara el usar el metodo show es el initialice..

Por ejemplo ...esta macro

sub abrir_formulario

Userform1.Show

End sub


Desencadenera el evento Initialize de Userform1

Private Sub UserForm_Initialize()


Msgbox "iniciando"

End Sub


y...Esta macro descargara el formulario desencadenado los sgtes eventos

Sub Close()

Unload UserForm1

End sub




1.QueryClose
2.Terminate



Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)

Msgbox "ya me voy"

End Sub



Private Sub UserForm_Terminate()

End Sub

Trabajar con userform 1.0 (Eventos en el formulario (userform) y en los controles...)




Eventos en el formulario y en los controles...

El formulario y todos los controles que agreguemos estan diseñados para interactuar con los usuarios
mediante las acciones o eventos que se realicen.


Para conocer los eventos disponibles para el formulario
coloquese en alguna parte del formulario y de doble clik

Conocer las acciones o eventos disponibles para un control

DE igual manera para conocer los eventos propios a un determinado control simplemente
de dar doble clik sobre el control.

Construcciones With End With

Construcciones With - End With

nos permitira realizar varias operaciones con un objeto sin la necesidad
de referenciarlo varias veces.

Por ejemplo..

En este ejemplo se observa la referencia Selection.Font hasta 3 veces..pero se puede mejorar..

verifique Las siguientes macros y quedara totalmente claro

Sub sinWITHENDW() 'Macro1


Selection.Font.Color = 255 'color fuente

Selection.Font.Bold = True 'negrita

Selection.Font.Italic = True 'itali

End Sub



Sub conWithEndWith() 'Macro2


With Selection.Font


.Color = 255 'color fuente

.Bold = True 'negrita

.Italic = True 'itali

End With


End Sub