Macros en Excel

C贸mo escribir en una celda, usando Macros (VBA)

Raymundo Ycaza
#Excel Avanzado#Macros (VBA)#馃 Automatizaci贸n con Excel

[resumen]En esta entrada te muestro un ejemplo sencillo de c贸mo lograr escribir en una celda, a trav茅s de las macros, para que comiences a dominar a la fiera.[/resumen]

A estas alturas ya no est谩s para cursos b谩sicos y quieres ir a por todas. Te interesa entrar en el mundo de las macros y quieres un ejemplo sencillo y concreto, para comenzar con pie derecho

隆Muy bien! Vas por buen camino.

Lo que te mostrar茅 hoy ser谩 un ejemplo muy b谩sico y sencillo, que te permitir谩 comprender c贸mo usar VBA para escribir en una celda (es decir, escribir algo sin utilizar el teclado).

驴Y eso? 驴Para qu茅 me sirve escribir en una celda con VBA?

隆Hey! Si est谩s leyendo esto, imagino que vienes con algo concreto en mente, o de lo contrario est谩s navegando sin rumbo.

[tuitealo]La mejor forma de aprender a usar Excel, es us谩ndolo con un objetivo espec铆fico.[/tuitealo]

Pero, 隆vamos! Si aprendes a utilizar las macros para escribir en las celdas de Excel, habr谩s dado tu primer paso en la construcci贸n de tu propia aplicaci贸n a medida, la que te servir谩 como un asistente digital en tus labores cotidianas.

隆Eh! Tranquil@

Vamos paso a paso, que as铆 se llega lejos.

驴Has notado que a veces me extiendo un poco m谩s en cosas sencillas?

Esto es porque quiero que prestes m谩s atenci贸n y corras menos.

聽C贸mo escribir en una celda con VBA, en palabras planas

Primero y, como siempre, vas ingresar al editor de VBA y crear谩s un m贸dulo (solo para no perder la costumbre)

Para escribir en la celda que est茅 seleccionada en ese momento (no importa cu谩l), este c贸digo ser谩 suficiente:

Option Explicit

Public Sub escribirConVBA() ActiveCell.Value = 鈥溌stoy aprendiendo VBA!鈥 End Sub

Explicaci贸n.

Nota que he creado la funci贸n escribirConVBA() dentro de la cual est谩 el c贸digo que escribe en la celda activa.

La primera parte: ActiveCell, hace referencia a la celda activa o lo que es lo mismo, la celda que est谩 seleccionada en el momento en el que se ejecuta la macro.

La parte que viene despu茅s del punto, es decir聽Value聽hace referencia al valor de la celda o el contenido en su interior.

脡sto quiere decir que ActiveCell.Value = , significa algo as铆 como:

[aviso titulo="" tipo=鈥済reen鈥漖El valor de la celda activa ser谩 igual a鈥/aviso]

Y la segunda parte, la que est谩 entre comillas, ser谩 el valor que se 鈥榚scribir谩鈥 en la celda activa. Puede ser lo que t煤 quieras, desde un texto como en este ejemplo, un n煤mero, una fecha o el valor de otra celda. Incluso el resultado de un c谩lculo.

驴Vas viendo por d贸nde van los tiros?

隆S铆! Podr铆as hacer muchas cosas partiendo de 茅sto.

Copiar el valor de otra celda.

Vamos a hacer un peque帽o cambio. Tratemos ahora de copiar el contenido de la celda A1, en la celda activa. 脡sto se logra con el siguiente cambio en el c贸digo.

Option Explicit Public Sub escribirConVBA() ActiveCell.Value = Range(鈥淎3鈥).Value End Sub

Ver谩s que ahora no uso el texto entre comillas, sino que en su lugar uso una referencia a la celda A3.

Una vez m谩s el atributo 鈥榁alue鈥 aparece, para indicarnos que el nuevo valor de la celda activa, ser谩 el valor que tenga la celda A3.

Si quisieras copiar el valor de otra celda, cualquiera que esta sea, solo tendr铆as que cambiar la referencia A3 por la que t煤 necesitas. Ver谩s que despu茅s de ejecutar el c贸digo, tendr谩s una copia del valor de dicha celda, en la celda activa.

Escribir el resultado de un c谩lculo.

Hagamos una combinaci贸n del ejemplo anterior con un c谩lculo incluido. 脡sto es muy com煤n en aplicaciones como las que se usan para crear facturas.

Imagina que en la celda A3 tienes el precio de un art铆culo y quieres calcular el IVA.

Una vez calculado el IVA, quieres escribir el resultado en la celda activa. Por supuesto, 茅sto no lo quieres hacer con f贸rmulas sino con macros.

El ejemplo, para un IVA de 12%, quedar铆a m谩s o menos as铆:

Option Explicit

Public Sub escribirConVBA() ActiveCell.Value = Range(鈥淎3鈥).Value * 0.12 End Sub

隆Aj谩! Ya se va poniendo interesante.

Con lo que has visto hasta ahora, ya tienes para ir haciendo tus pruebas y concretando ideas que ten铆as guardadas por ah铆.

Pero, vamos viendo un 煤ltimo ejemplo, 驴qu茅 dices?

Escribir en una celda espec铆fica.

Supongamos que no quieres escribir en cualquier celda que est茅 activa, sino que quieres elegir (mediante el c贸digo) en qu茅 celda espec铆fica quieres escribir.

驴Se puede?

Si.

Veamos:

Option Explicit

Public Sub escribirConVBA() Range(鈥淒6鈥).Value = Range(鈥淎3鈥).Value * 0.12 End Sub

En este 煤ltimo ejemplo, hemos seleccionado la celda D6, en la cual escribimos el resultado de calcular el IVA del precio escrito en la celda A3.

Si quieres escribir en otra celda, bastar谩 con que cambias la referencia D6 por la que t煤 necesites.

Concluyendo.

Aprender macros es ahora tu meta. 隆Felicitaciones por ello!

Pero recuerda ir con calma y atendiendo a cada detalle. Deja de estar revisando cientos y cientos de art铆culos y ponte a practicar. No desesperes por ver ejemplos muy b谩sicos, ya vendr谩 el tiempo en que sufrir谩s con los dif铆ciles :D

Es muy importante que te familiarices con los conceptos b谩sicos y con estos temas que son los pilares sobre los cuales construir谩s tus propias aplicaciones o soluciones, porque el objetivo final, es resolver un problema (o satisfacer un requerimiento si la palabra problema te causa un conflicto filos贸fico :D )

Mi consejo, es el de siempre: Practica, practica y practica. Pon tus conocimientos al servicio de alguien m谩s, as铆 ayudar谩s a otros, tendr谩s ocasi贸n de practicar y aprender谩s mucho y m谩s r谩pido.

隆Nos vemos!

[firma]

鈫 Regresar al Blog