viernes, 27 de agosto de 2010

Escribir en una hoja desde una macro

Podemos escribir en una hoja de Excel desde una macro. Para ello utilizaremos entre otros Range y Cells. También veremos cómo se procede cuando se ha producido un error al ejecutar una macro. Con Range podemos usar Value o no, aunque esta es una de las pocas veces que podremos saltarnos la estricta sintaxis de un lenguaje de programación.




Las macros comienzan por Sub seguido del nobre de la macro y un paréntesis abierto y otro cerrado. Dentro de los paréntesis normalmente no se escribe nada, aunque ya veremos más adelante que en ocasiones se escriben variables. La macro finaliza con End Sub. Entre ese comienzo y ese final se encuentran las líneas de comandos o sentencias. Al ejecutar una macro ésta se ejecuta secuencialmente de arriba hacia abajo.

Sub nombre_macro()
   Sentencia 1
   Sentencia 2
   Sentencia 3
   Sentencia 4
End Sub

El nombre de la macro no acepta espacios en blanco. Esto supone que, si son dos palabras, o bien se escriben juntas, o bien se separan con barra baja, como en nombre_macro.

Código:

Sub escribe()
Range("B1").Value = 100
Range("B2").Value = "Felicidades"
Range("B3") = 200
Range("B4") = "Bienvenido"
Cells(5, 2) = "Córdoba"
Cells(6, "B") = "Cádiz"
[B7] = 700
End Sub

6 comentarios:

  1. La macro aunque basica es interesante, Me gustaria si es posible una macro que Permita escribir párrafos enteros con formato en una hoja de Excel.

    ResponderEliminar
  2. Para un principiante en macros muy bueno, aunque me gustaria se publicara un curso mas extenso de macros a nivel basico.
    De todos midos muchas gracias

    ResponderEliminar
  3. Muchas felicidades tu blog esta muuy bueno

    Quisiera preguntarte una cosa, estoy programando una macro que copie cierta celda en otra hoja de ese mismo libro, pero los datos del origen deben ir cambiando de fila progresivamente pero no logro hacer que el numero de fila sea una variable en mi programacion, mira llevo esto:
    Dim N As Integer
    Dim I As Integer
    N = InputBox(" Cuantos registros desea importar:", "DC4")
    I = 1
    Do While I <= N

    Sheets("(1)").Select
    Sheets("(1)").Copy After:=Sheets(2)
    Worksheets("Sheet4").Cells("A", I).Copy Destination:=Worksheets("Sheet3").Range("A5:AA5")

    Loop
    End Sub

    ResponderEliminar
  4. Más claro imposible.
    ¡¡Cuanto vamos a aprender con este curso!!
    Muchas gracias Adolfo, paso corriendo al siguiente vídeo, ya estoy enganchado.

    ResponderEliminar
  5. Gracias, muy clara la explicación . Voy aprovechando mis viajes en tren al trabajo para ir aprendiendo.Mil gracias!

    ResponderEliminar
  6. Gracias, muy clara la explicación . Voy aprovechando mis viajes en tren al trabajo para ir aprendiendo.Mil gracias!

    ResponderEliminar