sábado, 26 de enero de 2008

Ejemplos macros vba Excel

Una pausa en el avance como
para reforzar un poquito lo avanzado.

Sub nombre_padre

'obtener el nombre del padre
'de activesheet

MsgBox ActiveSheet.Parent.FullName

End sub

'recordando el tema del modelo de objetos de Excel
'aqui un claro ejemplo de la jerarquia de objetos de
que les comente:

fijense primero nombramos al objeto "ActiveSheet" y colocamos el punto luego la palabra "Parent"(Padre)
(entiendase entonces que al decir "Activesheet.Parent"
estamos hablando del objeto inmediato superior a a la
hoja activa que seria logicamente"El libro"(ActiveWorkbook)
en este caso entonces veran que es lo mismo
colocar "ActiveSheet.Parent" o "ActiveWorkbook"
y de esa forma tambien podremos referenciar objetos haciendo referencia al objeto padre para el objeto correspondiente del modelo de objetos de Excel.

y finalmente colocamos la, propiedad "FullName"

esto nos daria exactamente el mismo resultado

sub nombre_libro

MsgBox ActiveWorkbook.FullName

end sub

-----------

obtener nombre del libro
************************

' ojo :...pero por ejemplo si el libro activo no se guardo
' ninguna vez todavia nos devolvera "Book1" o "Libro"'
dependiendo del idioma de tu Excel .

'y si tu libro ya lo habias guardado anteriormente
' devolvera ademas del nombre el "path" o ruta de
tu libro activo .

de esta manera : D:\Documents and Settings\Administrador\Escritorio\WorkPlan_jes1.xls
end sub


'Redondeando activecell
'---------------------------

Sub redondear_cells()

s = Round(ActiveCell, 2)

ActiveCell.Value = s

ActiveCell.NumberFormat = "#,##0.00"

End Sub


'Formateando(fuente)
'------------------------


Sub cambiar_formato()

Cells.Select 'seleccionamos todas las celdas
Selection.Font.Name = "Arial Black" 'asignamos la fuente
Selection.Font.Size = 13 'el tamaño de la fuente

'en el ejemplo seleccionamos todas las celdas
'pero puedes comentar la linea -->'Cells.Select'
y seleccionar cualquier rango de celdas'incluso
celdas discontinuas

End Sub


Cambiar entre estilos de referencia

de A1 a RC y viceversa

Application.ReferenceStyle = xlA1Application.ReferenceStyle = xlR1C1
Application.ReferenceStyle = xlA1

'Pegar los formatos
'--------------
'primero copia alguna celda que tenga el formato
'que deseas copiar'luego colocate sobre la celda o celdas
'ahora corre la macro


Sub Paste_formats()

Selection.PasteSpecial Paste:=xlFormats
Application.CutCopyMode = False

End Sub

'Copiar y Pegar valores
'------------------------


Sub PegarValor()

'de igual manera colocate
'sobre una celda con formula

Selection.Copy

'ahora sobre el rango donde deseas
'pegar solo como valor

Selection.PasteSpecial Paste:=xlValues

Application.CutCopyMode = False

End Sub

Se me paso mencionar algunas de las combinaciones de teclas para el editor de codigo pero aqui hay unas cuantas que falto mencionar.

Combinaciones de teclas para manejar el editor
-------------------------------------------------------
de codigo para vba (por ahora las más necesarias)
----------------------------------------------------------

para Abrir el editor simplemente presiona ----> Alt + F11

Estando ya sobre ele entorno del editor vba

PRESIONA ---> F2 (Examinador de objetos )

ir a cuadro de dialogo buscar ---> F3

ir a ventana de propiedades ----> F4

Para Ejecutar una macro -------> F5

Correr el codigo linea por linea (las instrucciones)----> F8