26 agosto, 2026

MODIFICAR ELEMENTOS DE UNA LISTA DE SHAREPOINT USANDO ADO CON VBA

Hola a todos,

En el post anterior os volvía a refrescar como podemos subir elementos a una lista de SharePoint usando ADO con VBA. Y hoy me gustaría ampliar la usabilidad de ADO con otra macro que uso en muchas ocasiones para realizar modificaciones en las listas de SharePoint.

Y es que es complicado si tenemos una lista de SharePoint de 10.000 registros (o más) y queremos modificar uno o varios elementos, por ejemplo, modificar el campo SEXO, donde antes teníamos MUJER, ahora quiero que ponga FEMENINO y si pone HOMBRE, que ponga MASCULINO.

El código completo que vamos a usar es este:

Option Explicit

Sub ModificarDatosSharePoint()
    Dim cnnSP As ADODB.Connection
    Dim rstSP As ADODB.Recordset
    Dim sSQL_SP As String
    
    ' Conexión a SharePoint
    sSQL_SP = "SELECT * FROM [MiLista]"
    Set cnnSP = New ADODB.Connection
    With cnnSP
        .ConnectionString = _
            "Provider=Microsoft.ACE.OLEDB.12.0;WSS;IMEX=0;RetrieveIds=Yes;" & _
            "DATABASE=https://miBase.sharepoint.com/sites/SIGNUM_GROUP/;" & _
            "LIST={948c9e84-1687-47ac-883b-ec0ac6ca9b97};"
        .Open
    End With

    Set rstSP = New ADODB.Recordset
    rstSP.Open sSQL_SP, cnnSP, adOpenDynamic, adLockOptimistic
    
    ' Recorremos los elementos de la lista y modificamos el campo SEXO
    Do Until rstSP.EOF
        If rstSP.Fields("SEXO").Value = "HOMBRE" Then
            rstSP.Fields("SEXO").Value = "MASCULINO"
        ElseIf rstSP.Fields("SEXO").Value = "MUJER" Then
            rstSP.Fields("SEXO").Value = "FEMENINO"
        End If
        
        rstSP.Update
        rstSP.MoveNext
    Loop

    ' Cerrar conexiones
    rstSP.Close:    Set rstSP = Nothing
    cnnSP.Close:    Set cnnSP = Nothing
    
    MsgBox "Los datos han sido actualizados en la lista de SharePoint.", vbInformation, "Proceso completado"
End Sub

En este caso lo solucionamos usando un condicional, pero podríamos introducir todo tipo de funciones.

De esta forma no tendremos que eliminar la lista (con todas las complicaciones que conlleva), sino que la modificamos.

Y esto es todo, espero que sea de utilidad!

Comparte este post

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies