sábado, 25 de febrero de 2012

MACRO ESCRITA

HOLA ... ♥

En esta ocasion vamos a ver otro tipo de programacion de excel...

En el cual usaremos las llamadas "macros" .

para crear una macro en excel tenemos 2 formas de hacerlo la primera es desde un acceso rapido en la parte baja de nuestra hoja. en cual le damos click y con mucho cuidado realizamos lo que queremos grabar y detener nuestra macro.
Y la otra forma que existe de grabar una macro es presionando las teclas "alt + f11" y escribirla con codigos.

Esto de la macro escrita puede ser un poco larga pero con esto tenemos la posibilidad de escribir solo que necesitamos que haga nuestra macro y evitarnos todos los codigos que nos agrega excel a la hora de hacerla del modo sencillo.

para este ejemplo usaremos un simple formato para que sepan algunos de los codigos que usan para que excel por medio de codigos visual basic haga lo que nosotros queremos.

este sera nuestro modelo:


Para escribir los codigos que se usan para crear esta macro y para que funcione vamos a presionar las teclas "alt + f11" 


ENTONCES:

En esta macro necesitamos tener el nombre de algunas personas, el monto de sueldo, mas su bonificacion.
y lo haremos solo con codigos de visual basic atravez de nuestra macro.
al presionar las teclas alt + f11 nos aparecera la siguiente pantalla.  en la cual aremos click sobre ", luego sobre "modulo" y en la sub pantalla que nos aparesca escribiremos nuestra macro.




los codigo para hacer que nuestra macro funcione son:

para crear nuestro encabezado:

Sub macroprueba( )
Range("a1").Select
ActiveCell.FormulaR1C1 = "NO."
Selection.Font.Bold = True
 With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .Color = 49407
 End With




       

Con este codigo creamos esta pequena celda con lo que tiene escrito y el color que ven.
para crear las demas usamos el mismo codigo solamente que el lugar de escribir "NO." escribimos lo que necesitamos que es 
  • nombre
  • sueldo
  • bonificacion
  • sueldo total
Y en lugar de escribir en range "a1" escribiremos "b1" y seguiremos asi hasta haber escrito los campos en listados arriba.


despues de haber escrito todos estos codigo tendremos (al ejecutar) en nuestra hoja de excel algo asi:




para el siguiente paso necesitamos este codigo: 
 Range("A1:E1").Select
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .Weight = xlThin
    End With
    With Selection.Borders(xlInsideVertical)
        .LineStyle = xlContinuous
        .Weight = xlThin
    End With
    With Selection.Borders(xlInsideHorizontal)
        .LineStyle = xlContinuous
        .Weight = xlThin
    End With
    Range("A1:E1").Select
    With Selection
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlBottom
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With



codigo que a decir verdad es muy largo para la funcion que tiene..  (simplemente copien y peguenlo)
:3 .. jejeje.. ♥

este codigo lo que hace es dar borde a todas las celdas en las que hemos escrito asi:


Lo siguiente que haremos sera escribir los codigos y los nombres de las personas de esta base de datos...
Y para hacerlo mas facil solo seran 5 nombres.

Y para eso el codigo es este:
Que es el que se utiliza para escribir el no.

Range("a2").Select
ActiveCell.FormulaR1C1 = "1"

Para escribir los de mas numero es es el mismo codigo, solamente que con un numero diferente.

With Selection
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlBottom
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
         Range("A2:A6").Select
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .Weight = xlThin
    End With

y este otro codigo es para centrar todos los campos que escribimos. (numeros)




para escribir los nombres es el mismo codigo que utilizamos para escribir los nombre, solamente que en lugar de numeros escribiremos los nombres.

y al igual que los numeros los vamos a centrar con el mismo codigo de centrado, solo que cambiamos el rango de celdas a centrar.



para escribir el sueldo y la bonificacion son los mismos codigos entonces creo que sera mas facil seguir desde aqui.


luego de tener todo esto usaremos de nuevo el codigo de borde que usamos arriba, pero seleccionando todas las celdas que tenemos que seria de a1 a e6 ...



hasta aqui esperia lleven muy bien su proyecto. Porque en esta parte que sigue tendremos que lograr por medio de codigos que nuestra macro nos sume el sueldo mas la bonificacion. entonces usaremos el siguiente codigo.

  Range("E2").Select
    ActiveCell.FormulaR1C1 = "=RC[-2]+RC[-1]"
    Range("D2").Select


en este codigo como en los otros cambiaremos los rangos dependiendo de la celda que siga de sumar.

Y al final de que escriban todos los codigos tendras (al momento de correr tu macro) una hoja de calculo como esta. 


Y tu hoja de codigod visual basic se vera asi :


Recuerda guardar tu archivo como "libro de excel habilitado para macros"


... ♥♥♥ no olviden dejar sus comentarios, y dudas.. con mucho cariño Que Dios los Bendiga.. ♥♥♥ hasta la proxima... ♥♥ 

No hay comentarios:

Publicar un comentario