martes, 19 de enero de 2016

Crear un Complemento o Add-in de Excel en 3 pasos

En este artículo les mostraré en 3 pasos, cómo crear un Complemento de Excel.
Primero lo primero... ¿Qué necesitamos para crear un Complemento o Add-in?



Lo podríamos hacer a través de Visual Studio, sin embargo, para muchos, podría volverse un tanto complicado. Así que lo haré los más sencillo posible, utilizando una herramienta, que además de ser gratuita, es de fácil uso.

Muy bien... hagamos una lista de lo que necesitamos para crear un complemento, el cual expandirá la funcionalidad de nuestro buen amigo Excel :)


  • Obviamente debemos tener instalado Microsoft Excel, la versión de escritorio.
  • Crearé un botón dentro de la pestaña Inicio de Excel, con la aplicación Custom UI Editor para Microsoft, la cual puedes decargar desde AQUÍ 
  • Y por supuesto, y lo más importante, debemos tener la rutina de programación de código VBA, 

Ok, prepárate con una tacita de café, para disfrutar, lo que viene a continuación.


PASO 1

Para nuestro ejemplo, utilizaremos una rutina de programación, que nos envíe el contenido de un libro de trabajo a un archivo PDF. Y es algo que a muchos nos gustaría tener como complemento en Excel. Si bien es cierto, que la aplicación cuenta con la característica de guardar nuestros libros de trabajo como PDF, sin embargo, el proceso de guardado y apertura, lo podemos minimizar, colocando un botón, el cual guardará de forma automática nuestro libro como PDF y al mismo tiempo lo abrirá, por lo que el proceso se limitará, a un solo clic.

Ok... inicia Excel... y crea un nuevo libro de trabajo, el cual tienes que Guardar como "Libro de Excel habilitado para macros"


A dicho libro, le vamos a poner de nombre "Complemento PDF", damos clic en Guardar


Ahora que ya tenemos guardado nuestro libro, nos dirigimos al Editor de Visual Basic, presionando la combinación de teclas  ALT+F11

Dentro del VBE, nos dirigimos al menú insertar, para agregar un nuevo módulo...




En la ventana de código del nuevo módulo, inserta el siguiente código de programación:

Sub Guardar_como_pdf(Control As IRibbonControl)
Dim Ruta As String
Dim Archivo As String
Dim NombreArchivo As String

On Error Resume Next
    Ruta = ActiveWorkbook.Path & "\"
    Archivo = Mid(ActiveWorkbook.Name, 1, (InStr(ActiveWorkbook.Name, ".") - 1))
    
    NombreArchivo = Ruta & Archivo
    
    ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:=NombreArchivo, _
    openafterpublish:=True

End Sub


Te tiene que quedar de esta forma:



Ok... guardemos y cerremos nuestro proyecto.




PASO 2

Ahora, procedamos a instalar el Custom UI Editor para Microsoft, con el cual crearemos un botón; y a dicho botón, le insertaremos una imagen que represente a un archivo PDF y vincularemos la Macro, que anteriormente insertamos.


Una vez tengamos instalado el Custom UI Editor, lo abrimos... y te aparecerá la interfaz del editor, como se ve en la imagen a continuación.



Muy bien... abrimos nuestro libro de trabajo desde el Custom UI Editor e insertamos Office 2010 Custom UI Part, lo cual nos dará compatibilidad desde la versión 2010 a la 2016 de Microsoft Excel.



Ahora procedemos a copiar y pegar el siguiente código XML, dentro de la UI Part que acabamos de insertar.

<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
  <ribbon>
    <tabs>

      <tab idMso="TabHome" >
        <group id="customGroup1" label="PDF" insertAfterMso="GroupEditingExcel" >
          <button id="customButton1" label="Guardar como..." size="large" screentip="Guardar como PDF" supertip="Haz clic aquí, para enviar el contenido de todo tu libro de trabajo a un archivo con formato PDF" onAction="Guardar_como_pdf" image="pdf_32x32" />
        </group>
      </tab>

    </tabs>
  </ribbon>
</customUI>


La imagen a utilizar, la puedes descargar desde AQUÍ, la cual está en formato png, con un tamaño de 32 por 32 píxeles. Tienes que ponerle de nombre "pdf_32x32", ya que así, es como se encuentra nombrada en el código XML, de lo contrario no te funcionará.


Y la agregas mediante el botón para insertar íconos.



Ok, aquí ya hemos terminado esta parte.
Ya para ir finalizando, guarda y cierra el Custom UI Editor.

El último paso, es lo más sencillo.



PASO 3

Abre tu libro de trabajo... y observa cómo ha quedado el complemento, el cual guardará el libro de trabajo completo como PDF, con un solo clic

Aún no hemos terminado :) ya que, solo aparece exclusivamente para este libro de trabajo.
Para que aparezca de forma predeterminada cuando abramos cualquier archivo de Excel, pues hay que hacer lo siguiente.

Este libro lo tienes que Guardar como "Complemento de Excel  (*.xlam)"


Le dejas el mismo nombre que le pusiste originalmente... y se guardará en la carpeta (AddIns) predeterminada, donde se guardan todos los complementos.

Ok... tranquilo, ya casi terminamos... cierra el libro de trabajo... ese libro ya no lo vas a utilizar.
Si quieres lo guardas como respaldo.

Abre Excel... crea un nuevo libro de trabajo. Si buscas el complemento, no lo vas a encontrar.

Para instalarlo, tienes que dar clic en el botón Complementos de Excel de la pestaña Desarrollador



Luego te aparecerá la siguiente ventana, en donde simplemente marcas la casilla de verificación para instalar el complemento recién creado.


Das clic en aceptar... y listo... ya tendrás el complemento instalado, para que te aparezca en cualquier libro de trabajo que abras en el futuro.




Solo tendrás que dar un solo clic, para que genere tu archivo PDF, no importando cuantas hojas de cálculo tengas, ya que te las enviará todas al instante.



Todo este conocimiento, te servirá de base, para seguir agregando nuevas funcionalidades a Excel, y de esta forma, expandir su potencial; ya que con ello, lograrás ahorrar tiempo en tu entorno laboral


Cualquier consulta, la puedes dejar en la caja de comentarios.
Te invito a que compartas este material con tus amigos en las diferentes redes sociales.

Nos vemos en la próxima entrega.
Saludos!




22 comentarios:

  1. QUE INTERESANTE ALGO APRENDI HOY NUEVAMENTE, UNA PREGUNTA? Y ESTO SE PUEDE HACER PARA CADA UNO DE LOS PROGRAMAS DE OFFICE,,,,

    ResponderEliminar
    Respuestas
    1. Por supuesto. Lo puedes hace en Word, PowerPoint y Outlook
      Saludos!

      Eliminar
  2. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  3. Excelente, profesor Otto. ¿Podría hacerse un complemento con utilidades tales como, por ejemplo, proteger/desproteger varias hojas al mismo tiempo?

    ResponderEliminar
    Respuestas
    1. Por supuesto! Todos los proyectos que se encuentran en mi canal de YouTube, los puedes agregar a este complemento. Por ahí tenemos Encriptar,Desencriptar y mucho material que puede ser de mucha utilidad.
      Gracias por comentar.

      Saludos cordiales!

      Eliminar
  4. Estmado Prof.,

    Al momento de querer abrir el archivo con el CUSTON me aparece desabilitado, como lo puedo solucionar ?

    ResponderEliminar
    Respuestas
    1. ¿Cómo así?
      Luego de abrir el archivo, tienes que agregar la UI Part 2010 o la 2007. Es entonces cuando pegas el código XML.

      Eliminar
  5. Sigue los pasos... Guarda el archivo del tipo "Habilitado para Macros", cuando lo abras con el Custom Ui, inserta una UI Part... y ahí pegas el código XML, pones el ícono, guardas y cierras. Y lo que sigue...
    Saludos!

    ResponderEliminar
  6. Cordial saludo Otto Javier González, muchas gracias por compartir tanto conocimiento, que el Todopoderoso, le conceda salud, bienestar y sabiduría.
    De lo aplicado(aunque bregue un poco), acorde a su explicación, quedó bien hecho de mi parte la instalación del complemento_pdf.
    Me doy cuenta, que la ejecución se da sobre todo el libro, ¿Qué he de hacer para que sea sólo para la hoja activa?
    Felicidades.

    ResponderEliminar
  7. Modifica la línea donde dice ActiveWorkbook, por ActiveSheet. Te quedará así:
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=NombreArchivo, openafterpublish:=True

    Gracias por tu comentario. Me motivas a seguir adelante con estos proyectos.

    Saludos cordiales!

    ResponderEliminar
    Respuestas
    1. Cordial saludo, Otto Javier González, he aplicado lo que me sugeriste, y ha salido correcto el resultado.
      Muchas gracias por darme la indicación solicitada.
      Quisiera ahora plantearle una inquietud. Tengo un par de códigos, con los cuales se logra:
      1. Generar (formula) en letras un valor numérico.
      2. Generar (formula) suma de acuerdo al color de la celda.
      ¿Que proceso me recomienda aplicar para cada uno de ellos, con lo cual pueda encontrar las formulas en todos los libros de Excel que abra? ¡Espero hacerme entender con la inquietud!
      ¡¡¡Felicidades!!!

      Eliminar
    2. No sé si te sea de utilidad, el post más reciente de este blog: http://expandiendoexcel.blogspot.com/2016/01/macro-para-encontrar-formulas-en-una.html

      Eliminar
  8. Estimado Otto, tengo una pregunta
    yo tengo una macro en un boton que copia la informacion de un libro y la pega en otro libro, es posible en lugar de tener ese boton en la hoja de excel poder crear el Add-in?
    Saludos y gracias de antemano por su pronta respuesta.

    ResponderEliminar
    Respuestas
    1. Por supuesto! lo puedes agregar a este mismo ejercicio. Simplemente agrega el otro botón. A medida que vayas agregando botones al complemento, pues... puedes ir pensando en hacer una pestaña independiente, que de hecho, la herramienta Custom UI, trae una plantilla para que la adaptes a tus necesidades.
      Saludos!

      Eliminar
  9. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  10. Profe un pregunta, al abrir el complemento en otro PC se tendra disponible el nuevo icono para ejecutar el procedimiento? . La pregunta la hago por que he guardado varias macros como complemento y añadido una nueva ficha en el libro pero sin utilizar XMl y al abrirlo en otro equipo no aparece la ficha, siempre me toca agregar otra vez la ficha en cada PC donde incorpore el complemento??

    ResponderEliminar
  11. Recuerda que es una personalización en un PC. Cada vez que quieras ir a otro PC, tienes que agregarlo como complemento. Cada equipo tiene su propia configuración.
    Dentro de poco estaré programando con Visual Studio, lo cual te permite de forma automática, instalar complementos en cualquier PC, sin necesidad de hacer tanta cosa.
    Saludos cordiales!

    ResponderEliminar
  12. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  13. !Hola Otto! ¿Tienes el archivo Excel? Saludos desde Cali-Colombia.

    ResponderEliminar
    Respuestas
    1. Me gustaría ver cómo se ve en tu archivo el controltiptext del Add-in ¿Con que línea de código XML logro que no aparezca "más información"?

      Eliminar
  14. Hola Otto, primero darte las gracias por tus videos, con ellos he ido aprendiendo mucho mucho y he logrado crear para mi compania ciertas aplicaciones que nos permiten llevar un mejor control. Estoy un poco atorado en el tema de los vmenu que presentas en tu gestor de inventario, si mal no recuerdo en el cap 23), si puedes ayudarme via privado por mi email te lo agradeceria infinitamente. Mi email es yguerra33@gmail.com... Gracias mil gracias nuevamente

    ResponderEliminar
  15. Hola Otto. Gracias por compartir tu conocimiento. El procedimiento sugerido trabaja bien con un procedimiento sub como el presentado en tu ejemplo. Sin embargo, si el procedimiento sub llama a un formulario, algo pasa y el add-in creado con custom ui no ejecuta el add-in y dice que las macros no están disponibles.... ¿Alguna sugerencia de como arreglar este problema?

    ResponderEliminar