Rankia Argentina
Acceder
¿Nos visitas desde USA? Entra a tu página Rankia.us.
Blog Cambiando el mundo
Discusión de problemas y soluciones de actualidad económica mundial

Trucos y tretas en Excel VBA para programadores (De Sharepoint a Excel)

Probablemente en tu trabajo habrías querido obtener información de Sharepoint para automatizar la elaboración de reportes usando Excel VBA y tus habilidades de programador.  Probablemente te encuentras que en los foros de VBA en Internet, todas las soluciones son esotéricamente incomprensibles.  Y entonces te miras frustrado e impotente para aprovechar tus conocimientos de programación en VBA, por el simple hecho de que no logras conectar Sharepoint con Excel, aunque seas un maestro en el manejo de Workbooks, Sheets y celdas.

En esas soluciones esotéricas paganas te ponen todo difícil, código incompleto que hace uso de objetos, y que no se adapta a lo que necesitas.  O te dan instrucciones largas o complicadas acerca de cómo navegar en Excel para encontrar "Other sources" donde todo es poco intuitivo.  El problema básico es que te tomará mucho tiempo que no tienes, para encontrar código que debería ser sencillo de obtener.  Afortunadamente es sencillo de obtener.

El problema fundamental que tienes como programador es encontrar el código que necesitas para leer información de Sharepoint desde Excel.  Y con unos pasos simples puedes encontrar ese código en Excel VBA.  Dile adios a las soluciones esotéricas paganas.

Voy a asumir que tienes Excel 2013, y que ya dominas lo básico del uso del IDE (editor) de VBA.

Paso 1. Crear un "query" en Sharepoint

  • Ingresa como simple usuario al Sharepoint donde aparecen los datos.  Asumo que ya pediste al departamento de IT los accesos correspondientes para hacerlo.
  • Haz click en el tab "List"

     
  • Haz click en el botón "Export to Excel" para salvar el query.  En este ejemplo, yo le pondré al archivo del query el nombre "Sharepoint query".  Se va a generar un archivo con extensión .iqy


Paso 2.  Abre el query y ciérralo.

  • Ve a Explorer y busca el archivo query (con extensión .iqy) que acabas de crear y haz doble click para abrirlo.  Verás que Excel se abre y empieza a cargar datos directamente de Sharepoint.
  • Ahora cierra el archivo.  Lo que queríamos es que el query se agregue a la lista de archivos abiertos recientemente.


Paso 3.  Grabar macro

  • Abre Excel
  • Ve a File > New > Blank Workbook
  • Haz click en el tab "View"
  • Haz click sobre la pequeña flecha negra que aparece debajo del botón "Macros"
  • Selecciona "Record Macro"

     
  • Ve a File > Open
  • Escoge el nombre del query entre los itemes recientes

     
  • Haz click en el tab "View"
  • Haz click sobre la pequeña flecha negra que aparece debajo del botón "Macros"
  • Selecciona "Stop recording" para dejar de grabar

Paso 4. Encontrar el código de la macro

  • Presiona Alt F11
  • Busca el código en Module1

Algunos comentarios finales

Si ya has grabado macros donde abres un Workbook notarás que el código que surge al abrir el archivo .iqy no se parece a lo que ya conocías.  Afortunadamente ya no necesitas buscar eternamente, sino que en unos pocos pasos ya tienes todo lo que necesitas.

Cabe notar que ese código aporta varios valores útiles.  Si los buscas manualmente en el código fuente del HTML del Sharepoint será un dolor de cabeza, porque están enterrados en código ininteligible.  Los valores que habrías tenido que buscar son:

  • List
  • Listname
  • Listweb
  • Rootfolder

Afortunadamente estos valores que son específicos para cada Sharepoint que tengas, se encuentran en el código que acabas de grabar.   Por eso, para cada Sharepoint que tengas que leer, necesitarás crear el query correspondiente y seguir estos pasos.

El código que grabaste abre el query y obtendrás una foto instantánea en Excel de los datos que están en el Sharepoint.  Al ejecutar ese código, tienes los datos del Sharepoint cargados en Excel, el punto de partida para comenzar a procesar los datos.  Ahora todo depende de tu maestría para navegar y procesar Workbooks, Sheets y celdas.

Ahora que si lo que quieres es grabar datos en Sharepoint, eso es harina de otro costal.


 

  1. #1

    Carolina.Silva2196

    Interesante.

    Realmente tengo el problema contrario. Tengo unos Userform para el control de inventario. EL excel corre perfectamente. El problema se ocasiona cuando quiero crear una carpeta en el mismo servidor de SharePoint. Antes funcionaba todo bien y se creaban esas carpetas, pero ahora me salta un error ese parte.

    Me puedes decir en donde puedo consultar o si tienes alguna solución te lo agradecería.

Autor del blog