web analytics

Plantilla para controlar los cambios en un archivo Excel con VBA

Una vez me pidieron si era posible controlar los cambios que se realizan en un libro Excel sin que el usuario lo sepa, como siempre digo, es solo cuestión de tiempo, con Office y VBA se pueden hacer muchísimas cosas antes de llegar a un límite que difícilmente se alcanzará en un entorno ofimático normal, no hablamos de un ERP para gestionar un negocio de millones de euros ni de un videojuego de última generación, hablamos de ofimática, escribir, calcular y presentar, y para estos menesteres y para el común de los mortales las macros con VBA son más que suficiente.

Obviamente, Excel incorpora un sistema de control de cambios (p.e. aquí), pero además de ser más obvio para el usuario nos obliga a compartir el libro y nos puede limitar en ciertas funciones, pero por otro lado este método con VBA me provocó un problema importante y es que no se pueden deshacer los cambios, cada vez que se ejecuta código VBA la pila de deshacer (undo stack para los amigos) se vacía, y en este tipo de plantilla que se ejecuta VBA todo el rato es un problema, incluso los usuarios mas avezados se darán cuenta que algo sucede con la opción deshacer, desgraciadamente se tiene que decir aquello tan manido de:  «no es un bug es una feature«, hay soluciones más o menos completas para parchear esta característica que pasan por hacer un copia del estado del libro antes de ejecutar la macro, pero como tampoco me acababa de gustar y no tenia tiempo no lo programé.

Entonces hay que valorar que queremos, deshacer las cosas o secretismo, como en este caso se trataba más de investigar sobre el mal uso de un archivo Excel la opción fue hacerlo mediante VBA.

Leer másPlantilla para controlar los cambios en un archivo Excel con VBA

Plantilla Excel para los 5 porqués

Una de las primeras cosas que suelen decir los neófitos cuando alguien explica lo que es el tema del Lean Manufacturing, TPMs, MAs, RCAs y todo ese mejunje de acrónimos, es que (casi) todo es de sentido común. Sí, Sí, y por ello es más incomprensible como algunas organizaciones llegan a ser tan poco eficientes y no aplican para nada el sentido común.

Importación de datos de consumo eléctrico de PowerStudio Scada a Excel (y II)

En mi post anterior me he quedado en esta cadena:

"http://192.168.1.54:8080/services/user/records.xml?var=" & _
Dispositivo & "." & vari & "?begin=" & FechaInicio & "?end=" & _
FechaFin & "?period=ALL" 

Veamos la construcción de esta llamada:

  • http://192.168.1.54:8080 Es la dirección del servidor donde se encuentra instalado el PowerStudio Scada, y el puerto 8080 donde enviaremos nuestra petición.
  • /services/user/records.xml? Según el Manual PowerStudio Scada esta petición nos devuelve los registros del dispositivo indicado, entre la fecha indicada y con la agrupación indicada que se definen en las siguientes variables:
    • Dispositivo: Es el nombre del dispositivo registrador (CVM) dentro del PowerScada.
    • vari: Es el tipo de medida que vamos a pedir (W,Wh,A,V,etc)
    • FechaInicio: Fecha inicial del periodo del cual queremos los datos.
    • FechaFin: Fecha final del periodo del cual queremos los datos.
    • period=ALL: agrupación de los datos que obtenemos.

Con todo esto hagamos un ejemplo y lo veremos más claro:

Leer másImportación de datos de consumo eléctrico de PowerStudio Scada a Excel (y II)

Importación de datos de consumo eléctrico de PowerStudio Scada a Excel (I)

Se puede decir que fué la primera vez que vi la necesidad de utilizar VBA de manera que mi trabajo fuera menos aburrido. Era un nuevo trabajo en una vieja empresa y, entre muchas otras tareas, debía extraer diariamente los datos de consumos eléctricos de manera que se supieran diariamente los ratios de consumo por unidades fabricadas.

Leer másImportación de datos de consumo eléctrico de PowerStudio Scada a Excel (I)