16

Cómo creé mi primera macro

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 que separar en columnas los diferentes campos (creo recordar que eran alrededor de cinco), cambiar el orden de las columnas e importar ese archivo en el sistema informático.

Al principio lo hacía todo a mano. Mi antecesor 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 oido 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.
  • 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. La versión que utilizo ahora, la de la imagen es 2010):

GrabarMacro

  • Le dí 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 textos). La macro la guardé 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 para colocarlas en la posición adecuada para que el sistema informatico 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 nuevo y pulsé Ctrl + s….

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

 

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

 

Depurar el código para que trabajara más deprísa 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.

¡Compartir es vivir!
Sergio
 

La destreza y el perfeccionismo quizá sean las dos virtudes que me permiten ayudar a mis clientes a facilitar las tareas administrativas de sus negocios.

Haz clic aquí para dejar un comentario 16 comentarios
danilo

Excelente
Saludos.

Responder
Luis Alan

Motivante y desafiante al mismo tiempo

Responder
Guillermo

Sergio, el maestro forma al alumno, efectivamente, es por eso que me gusta este blog, porque asi comienza uno, quitandose el miedo
“(se puede estropear el archivo o puedo descomponer la aplicacion o no se hacer eso)”
Asi comence, entrando a ayudaexcel y esa manera de pensar me dio fuerzas y valor para disminuir el tiempo de actualizacion y cambio de formato a un archivo de Programacion de Horarios de una Plataforma de 70 Oficiales de Atencion Telefonica que estaba en xlsb a formato de xls 2003.
El tiempo que me tomaba para hacer esas modificaciones era de 1.5 horas, para automatizarlo (como era mi primera vez) lleve 16 horas pero lo deje salvaje, despues era un proceso de 1 minuto.

Gracias sergio por este sitio.

Responder
Guillermo

Ya cuando me promovieron a otro departamento, la actualizacion de horas extras se basa en reportes de AVAYA CMS (cuando me lo dieron todo era manual) y tambien ese archivo (Programacion de Horarios) esta amarrado a un control de adherencia (ese archivo fue otra mejora) y viceversa.

Responder
Sergio

Gracias por tu comentario, Guillermo. Un pensamiento que intento transmitir con la web es que Excel sirve para trabajar menos y más rápido.

Responder
Jordi

Genial pagina, me ayudaron mucho en un proyecto para mi trabajo. Muy recomendable

Desde aquí animo a todo el mundo a programar, no sólo en excel, sino tb en access. Con este binomio se pueden hacer grandes cosas. Y un ejemplo es mi trabajo, una multinacional soportada por un programa hecho en access y con muchas herramientas que capturan estos valores y los pasan a excel

ánimo y suerte a todos,
Jordi

Responder
    Sergio

    Jordi, gracias por tu comentario. Me alegra saber que tanto la web como el foro de Ayuda Excel, son de utilidad para mucha gente.

    Saludos

    Responder
anibal3

Saludos. Es sorprendente ver la inmensidad de cosas que se puede hacer con excel. A veces pienso que no se va a poder alcanzar a revisar mas cosas porque de hecho parecen difíciles. pero con la ayuda de esta página y sobre del MAESTRO Sergio las cosas se hacen un poco mas llevaderas. Gracias por compartir.

Responder
santoro2

Felicidades por esta magnífica web…en ese mismo punto que describes, me encontraba yo hace cosa de unos 4 meses, cuando alentado por mis escasos conocimientos adquiridos sobre otros lenguajes de programación, y con el objetivo de automatizar procesos diarios de mi actual trabajo, descubrí el maravilloso mundo de VBA. Gracias por compartir tus conocimientos!

Responder
    Sergio

    VBA es la herramienta más útil que tiene Excel, ya que es capaz de convertir un programa “general” en una auténtica aplicación adaptada a cada necesidad. Poco a poco y sin darte cuenta, irás aprendiendo cosas nuevas.

    Responder
Jorge

Estimado Sergio: Primera vez que te escribo. Primera vez que ingreso a una de estas “ayudas”. Primera vez que solicito información de este tipo…(soy auto didacta), Primera vez que envío agradecimientos y me alegro mucho de haberte contactado, pues ya me di cuenta lo que “pesas” y lo valioso que me será tu apoyo en este tema.
¡sigue siempre igual…te deseo que la buena suerte esté de tu lado!

Jorge, Antofagasta, Chile.

Responder
    Sergio

    Gracias, Jorge. Espero verte por aquí a menudo!

    Responder
David

Hola Sergio, este foro ha sido de gran ayuda para mi.. te agradesco mucho por toda la informacion que compartes.

Responder
juanjo

Quiero aprender a utilizar macros , pero no se como empezar . ¿ me puedes ayudar?

Responder
    Sergio

    Juanjo, si vas a aprender desde cero, te recomiendo que busques en Youtube. Existen cursos completos para usuarios que no saben nada de macros.
    También, más offline tienes mi Manual de Programación VBA para Excel, que también es para principiantes.

    Saludos

    Responder
Danilo Martínez B.

Hola Como estás?
Te envio este saludo desde Chile. Vivo en la ciudad de Rancagua, donde se encuentra, la mina de cobre subterranea, más grande del mundo. Comentario aparte jjjjj.
Sergio. Desde hace tiempo que quiero aprender a programar en macros, pero no se por donde empezar. Por ejemplo
veo tus ejemplos, y aparecen las lineas de codigo………. y hasta llego.
Para programar en macro. Hay que tener necesariamente, conocimientos o nociones en programación?
Que manual, o texto, recomendarías para un principiante como yo, que desea indagar y aprender en éste intrigante e interesante “mundo” de las macros.
Esperando una buena acogida por la presente, se despide

atentamente

Danilo Martínez B.

Rancagua, marzo 11 de 2016

Responder

Escribe una respuesta: