ACTUALIZA listas de SHAREPOINT desde EXCEL
¿Quieres aprender a actualizar listas de SharePoint de manera masiva y eficiente?
Una de las preguntas más repetidas entre quienes trabajan con datos en la nube es si es posible modificar la información de SharePoint directamente desde Excel, sin tener que abrir la web ni ir registro a registro. La respuesta es que sí se puede, y en este tutorial montamos un auténtico gestor de listas de SharePoint operado por completo desde Excel: conectamos con Power Query, generamos la conexión con un poco de código de Visual Basic y conseguimos no solo visualizar los datos, sino también modificarlos línea a línea o de forma masiva.
Conectar las listas con Power Query
El primer paso es identificar el sitio de SharePoint con el que vamos a trabajar. Copiamos la URL del sitio desde el navegador (normalmente incluye el nombre que estamos viendo en pantalla) y nos vamos a Excel.
Desde el menú de Power Query elegimos De otras fuentes → Desde una lista de SharePoint y pegamos la URL del sitio. El asistente nos genera automáticamente tres pasos: Origen, Navegación y Columnas. Lo importante aquí no es quedarnos con una lista concreta, sino con el primer paso, el de Origen.
En el Origen aparecen todos los elementos del sitio. Filtramos para quedarnos solo con las listas que nos interesan (en el ejemplo: empleados, oficinas, lista de empleados, vacaciones y ventas) y eliminamos los pasos posteriores. La clave está en una columna llamada ID: un código alfanumérico largo que identifica de forma única cada lista dentro de SharePoint. Nos quedamos con el listado de títulos y su ID, renombramos la consulta como listas y la cargamos a Excel.
Preparar la hoja de control
En una hoja nueva (la llamamos update) creamos un desplegable con Datos → Validación de datos → Lista, apuntando al listado de listas que acabamos de cargar. Así tendremos un selector de las listas disponibles.
Junto al desplegable colocamos un BUSCARX que recupera el ID correspondiente a la lista seleccionada y, si no encuentra nada, devuelve un texto del tipo "selecciona una lista" para que el gestor sea más amigable. A esa celda con el ID le asignamos el nombre ID_lista, de modo que luego sea más fácil referenciarla desde el código.
La macro que crea la conexión
Abrimos el editor de Visual Basic, insertamos un módulo nuevo y creamos la macro actualizar_sharepoint. Necesitamos tres variables:
URL(tipoString): la ruta del sitio de SharePoint.hoja: referencia a la hojaupdate, por comodidad.origen(tipoVariant): un array de dos elementos que define la conexión.
El array origen se compone así:
- El primer elemento es la URL del sitio más el directorio interno donde SharePoint guarda la información de las listas: se añade al final de la URL
/_vti_bin. - El segundo elemento identifica la lista concreta mediante su
ID, tomando el valor de la celda con nombreID_lista.
Con las variables listas, generamos la tabla con ListObjects.Add, indicando que el origen es externo (SharePoint), pasando el array origen como fuente, confirmando que hay vínculo y cabeceras, y fijando el destino en el rango E6 de la hoja. A la tabla resultante le asignamos un nombre fijo, lista_sharepoint, para poder referirnos a ella siempre igual (Excel, por defecto, numera las tablas como tabla1, tabla2, etc.).
Evitar conflictos al recrear la tabla
Cada vez que cambiamos de lista queremos borrar la tabla anterior y crear la nueva. Si no lo hacemos, Excel lanza un error porque una tabla no puede superponerse a otra. La solución es añadir, antes de generar la tabla, una línea que busque el objeto lista_sharepoint en la hoja y lo elimine. Gracias a haberla nombrado, localizarla y borrarla es inmediato.
Ejecución automática al cambiar el desplegable
Para no ejecutar la macro a mano, pegamos en el módulo de la hoja update un evento Worksheet_Change que detecta los cambios en la celda del desplegable (en este caso B4) y llama a la macro actualizar_sharepoint. Así, cada vez que seleccionamos una lista distinta, la tabla se actualiza sola con los datos correspondientes.
Modificar los datos y sincronizar
Aquí está lo realmente potente: la tabla no solo muestra los datos, también los hereda con los desplegables definidos en SharePoint (por ejemplo, los estados "abierta", "cerrada" o "por abrir" de las oficinas), manteniendo la integridad entre ambos lados.
Para enviar los cambios de vuelta, basta con hacer clic derecho sobre la tabla y elegir Sincronizar con SharePoint. Los cambios se reflejan de forma inmediata en la web. Podemos modificar valores, cerrar varias filas a la vez o incluso añadir registros nuevos: al crear una fila, Excel genera el código autonumérico vinculado y, al sincronizar, las nuevas entradas aparecen en SharePoint.
Para agilizarlo aún más, grabamos la acción de sincronizar como una macro y la asignamos a un botón (un icono de nube) en la hoja, evitando tener que ir al menú contextual cada vez.
Una advertencia importante sobre el autoguardado
Hay un detalle clave: conviene desactivar el autoguardado. Al grabar el fichero, Excel avisa de que la conexión con SharePoint se perderá; cuando lo hacemos a mano no es problema, porque rehacemos la conexión al ejecutar la macro. Pero con el autoguardado activado este proceso ocurre en segundo plano sin avisarte, la conexión desaparece sin previo aviso y puedes acabar pensando que algo se ha roto cuando en realidad fue el guardado automático.
Conclusión
Con un esquema sencillo —Power Query para inventariar las listas, un desplegable con BUSCARX y una macro de Visual Basic— conseguimos un gestor que centraliza todas las listas de SharePoint (incluso de sitios distintos) y permite visualizarlas y modificarlas a golpe de celda. Es una mejora enorme de productividad para quienes mantienen inventarios en SharePoint sin querer entrar registro a registro en la web.
Más contenido de Excel en InflueXcel
- Listas desplegables en cascada de n niveles con una sola validación y filas independientes CasoJuan planteó un reto que muchos hemos sufrido: un formulario en forma de rejilla con listas desplegables en cascada. Al elegir la familia en
- Interactive Canvas en Excel: dashboards interactivos con Copilot (Gantt, Sankey y más) TutorialInteractive Canvas es la nueva función de Copilot en Excel que crea dashboards interactivos dentro de tu libro con una sola frase: desde una
- SUMAR.SI.CONJUNTO en Excel: las 5 dudas más buscadas, resueltas (y por qué no acepta ELEGIRCOLS) TutorialLe pregunté a Copilot cuáles son las 5 dudas que más se buscan sobre la función SUMAR.SI.CONJUNTO y las resuelvo una a una en Excel, cada un
- Copilot vs Claude en Excel: les pido la misma plantilla de gastos y las someto a 10 pruebas TutorialLe pedí a Copilot en Excel (GPT-6 Sol) y a Claude en Excel (Opus 5.5) exactamente la misma plantilla para controlar los gastos de casa, con
- Listado filtrado en bloques por mes, con una fila de recuento debajo de cada mes CasoLuis trae un informe de clientes muy habitual: una tabla T_BD con la fecha de alta de cada cliente y una fecha tope de vencimiento (=FECHA.M
- FILTRAR en Excel: las 5 dudas más buscadas, resueltas (y una extra: filtrar entre fechas) TutorialLe preguntamos a Copilot cuáles son las 5 dudas que más se buscan sobre FILTRAR y las resolvemos una a una en Excel, cada una con un truco e
- Copilot vs Claude en Excel: les pido la misma plantilla de vacaciones y las someto a 10 pruebas TutorialLe pedí a Copilot en Excel (GPT-6 Sol) y a Claude en Excel (Opus 5.5) exactamente la misma plantilla para controlar las vacaciones de un equ
- Unir las columnas de cada fila con BYROW sin que sobre el separador del final: doce maneras CasoJuan tenía dos columnas por fila, un código (A.5) y una descripción (b) Prestaciones de servicios), y quería unirlas con un guion en medio:
- Diagrama de Gantt en Excel en 6 minutos con barras apiladas TutorialUn diagrama de Gantt en Excel no necesita plantillas de pago ni complementos: sale de un gráfico de barras apiladas horizontal al que se le
- Función AGRUPARPOR en Excel: guía completa TutorialCómo usar la función AGRUPARPOR (GROUPBY) en Excel: agrupar por varias columnas, subtotales, orden, varios cálculos a la vez, LAMBDA y segme