Cómo creé mi primera macro

grabadora de macros excel

Uno de mis primeros empleos fue el de “procesador de pedidos” en una gran central de compras. Todos los días recibía entre 100 y 150 archivos con pedidos de las tiendas asociadas a nuestra empresa. Estos archivos me llegaban en formato csv que debía introducir en el sistema informático de la empresa.

Parecía un trabajo sencillo, de hecho lo era porque no tenía que pensar mucho. Solamente tenia tres pasos:

  1. Separar en columnas los diferentes campos (creo recordar que eran alrededor de cinco)
  2. Cambiar el orden de las columnas
  3. Importar ese archivo en el sistema informático.

Fácil, ¿verdad?

Al principio lo hacía todo a mano. El compañero al que sustituía  lo llevaba haciendo así desde hace mucho tiempo y por el momento iba a esperar para ver cómo mejorar esto. Ni que decir tiene que jamás había oído hablar de macros o VBA.

Cierto día, buscando otro tipo de información, me topé con una web sobre Excel (imposible recordar cuál) en la que se hablaba de simplificar tareas repetitivas con algo llamado “grabadora de macros”…

Como soy más curioso que un gato, me puse a investigar qué era eso de la grabadora de macros y descubrí que servía para grabar las acciones que ibas haciendo en la hoja de cálculo para luego reproducirlas infinitas veces con muy pocos clics de ratón. Es decir que añadir o quitar filas o columnas, introducir valores o crear fórmulas, podría hacerlo con un solo clic de ratón. ¡¡Qué descubrimiento!!

¿Qué pasos seguí para automatizar mi trabajo?

  • En primer lugar pensé en el orden óptimo de los movimientos de datos que iba a hacer dentro de mi csv para evitar cualquier posible error y acelerar el funcionamiento. Esto es algo importante para no ‘desperdiciar’ movimientos (que se traducen en más tiempo de ejecución).
  • Pulsé en el botón Grabar macro que se encuentra en la parte inferior izquierda de la pantalla (la versión de Excel que utilizaba entonces estaba incluida en Office 97.
  • Le di un nombre a la macro y le asigné un atajo de teclado (creo que Ctrl + s, que en teclado español (de España) sirve para subrayar valores). Guardé la macro en el libro de macros personal para que estuviese disponible en cualquier archivo que abriera desde mi equipo. Para cerrar el cuadro de diálogo pulsé Aceptar.
ImportarPedidos
  • A continuación, cambié el orden de las columnas colocándolas en la posición adecuada para que el sistema informático lo leyera correctamente.
  • Una vez que estuvo todo perfectamente formateado, finalicé la grabación pulsando en el botón Detener grabación que se encuentra en el mismo sitio que el de inicio de la grabación (en el extremo inferior izquierdo).

Después de finalizar el trabajo tenía que comprobar que la macro repetía las acciones que acababa de grabar, así que abrí un archivo csv de los que recibía diariamente, presioné las teclas Ctrl + S…

Y ¡¡voila!!¡en menos de medio segundo había hecho el trabajo de casi dos minutos.

Si quieres curiosear, el código que generó la macro grabada fue el siguiente:

Sub ImportaPedidos()
'
' ImportaPedidos Macro
'
' Acceso directo: Ctrl+s
'
    Columns("A:A").Select
    Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
        Semicolon:=True, Comma:=False, Space:=False, Other:=False, FieldInfo _
        :=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1)), _
        TrailingMinusNumbers:=True
    Columns("B:B").Select
    Selection.Cut
    Columns("A:A").Select
    Selection.Insert Shift:=xlToRight
    Columns("E:E").Select
    Selection.Cut
    Columns("D:D").Select
    Selection.Insert Shift:=xlToRight
End Sub

Me sentí tan orgulloso de mi macro que se la enseñaba a todo aquel que se acercaba a mi despacho.

Por supuesto, el código grabado con la grabadora es muy mejorable para hacerlo funcionar más rápido, pero desde ese día me dije que si había sido capaz de crear esa sencilla macro, podría ser capaz de crear cosas más complicadas.