Post Destacado

Configurando la Impresión Perfecta de un Libro de Excel

Aunque vivimos en una era digital, a veces todavía es necesario imprimir datos, tablas, gráficos, o información de cualquier tipo que hayamos procesado en Excel. Especialmente si estamos hablando de informes financieros, gráficos estadísticos, o simplemente porque preferiremos analizar la información en formato físico. Sin embargo, Excel es muy flexible y las hojas pueden volverse rápidamente muy extensas, lo que puede complicar las tareas de impresión. A continuación, detallaremos el proceso para configurar y preparar tu libro de Excel para imprimirlo de la mejor manera posible en cada caso. Paso 1: Revisión Preliminar Antes de imprimir, debes revisar cómo quedará el documento una vez impreso. Excel ofrece dos opciones para ello: a. Ve a la pestaña "Archivo", luego elige "Imprimir". Aquí puedes ver cómo se verá tu documento antes de imprimirlo. b.    Utiliza la opción 'Diseño de Página'. Esta perspectiva te dará una vista preliminar de cómo se verá tu libro

La Instrucción Debug.Print en VBA

 


En más de una ocasión, podríamos requerir en nuestro código de VBA explorar en mayor profundidad el valor de una variable, para comprobar que el código que hemos pensado se ejecuta de acuerdo a nuestras expectativas, o intentar entender dónde y por qué se están produciendo problemas. Este proceso se conoce como "debuggear" (en español: depuración), y no es otra cosa que el proceso de identificar y corregir errores de programación ("bugs"). 

En general, debido a malas costumbres, muchos programadores de VBA mal-utilizan las ventanas con mensajes o MsgBox para mostrar el contenido de variables durante la ejecución del código. También tenemos los puntos de interrupción que, cuando un cierto código repite varias veces una misma línea que nos interesa explorar en mayor profundidad, se vuelven tediosos rápidamente. Ambos métodos si bien en alguna medida pueden cumplir con su objetivo, en general no son óptimos, debido a que ralentizan bastante la ejecución, produciendo un exceso de interacciones innecesarias, y no dejan un buen "registro" de lo que ha ido ocurriendo con el código.

A este fin, se introduce (de manera bastante literal) una instrucción denominada Debug.Print. Esta función permite la depuración de una programación de forma más cómoda, mostrando (o "imprimiendo", del inglés "print") información en la ventana Inmediato de VBA. Simplemente debemos asegurarnos que la ventana Inmediato se encuentre visible, y al anteponer esta sentencia antes de la variable que se desea comprobar, conseguiremos ver todos los valores que toma la variable cada vez que el programa pasa por este comando.

Estas instrucciones se pueden posicionar en forma de "marcadores" en distintos puntos a lo largo del código cuando queremos depurarlo (en general, cada vez que se modifique o acceda al valor de una variable que sea de nuestro interés), y su principal ventaja es que no interactuarán con el resto del código, no modificarán nuestro libro, ni producirán interacciones visibles con el exterior. Simplemente dejarán un discreto registro de la ejecución de nuestro programa en la ventana Inmediato, que luego podremos releer para analizarlo y ver dónde está el error.

Para añadir un marcador al programa es preciso añadir la instrucción Debug.Print seguida del nombre de la variable que se quiere analizar, y asegurarnos que la ventana Inmediato se encuentre visible desde Ver > Ventana Inmediato, o el atajo Ctrl+G directamente desde nuestro editor de VBA:



En los puntos de nuestro código que nos interese realizar una evaluación de lo que está ocurriendo con el valor de nuestras variables, simplemente agregamos la línea Debug.Print

Sub DepurarCodigo()  Dim Num_Fila As Long      For Num_Fila = 10 To 0 Step -1         Debug.Print "Valor de la fila : " & Num_Fila           Debug.Print "Resultado del calculo : " & 10/Num_Fila       

Cells(Num_Fila, 2) = 10/Num_Fila

    Next 

End Sub


Una vez hayamos terminado, si bien esta línea no ocasionará problemas con el resto del programa, puede ser eliminada para mayor limpieza en nuestro código, y no entorpecer la visibilidad en la ventana Inmediato si la necesitamos para otros usos más tarde.