Sharepoint mit Excel verbinden

Was ist eine SharePoint-Liste?

Eine Liste ist eine Sammlung von Daten, die eine Struktur hat: Sie ist im Wesentlichen wie eine Tabelle oder eine einfache Datenbank. Es kann viele verschiedene Arten von Informationen enthalten, darunter Zahlen, Text und sogar Bilder. Sie können die Liste auch mit Ihren Teammitgliedern und Personen teilen, denen Sie Zugriff gewährt haben. Sie finden mehrere gebrauchsfertige Listenvorlagen, die einen guten Ausgangspunkt für die Organisation von Listenelementen bieten.

Dieser Artikel zeigt Ihnen, wie Sie Ihre vorhandene SharePoint-Liste mithilfe von VBA in ein Excel-Arbeitsblatt herunterladen. Lassen Sie uns zuerst die SharePoint-Listen-URL und ihre GUID identifizieren. Diese benötigen Sie später.

Um die URL und GUID der Liste zu erfassen, besteht der erste Schritt darin, zu Ihrer Website zu navigieren. Klicken Sie auf „Site contents“, Sie sehen dann die Inhalte einschließlich der Listen. Zum Beispiel möchten wir die Liste „Apr 2023“ herunterladen – bewegen Sie die Maus und klicken Sie auf Einstellungen.

Dadurch werden Sie auf diese Seite weitergeleitet.

Der Text im orangefarbenen Rechteck ist die URL der Liste und der Text im roten Rechteck ist die GUID der Liste.

 

Laden Sie die SharePoint-Liste mit VBA herunter

Wir haben zwei Methoden, um die Liste herunterzuladen: (1) Verwenden von xlSrcExternal von ListObject und (2) Verwenden von Microsoft ACE OLEDB-Verbindung

Methode 1: Verwenden von xlSrcExternal von ListObject

Nachdem eine Liste auf einer SharePoint-Website veröffentlicht wurde, können Sie eine direkt in eine Tabelle laden.

Schritt 1: Kopieren Sie diese Subroutine und fügen Sie sie in ein Modul ein.

Sub DownloadSharePointList_xlSrcExternal()

Dim SharePointURL As String, ListGUID As String

 

SharePointURL = „https://vmydof.sharepoint.com/sites/Sales/_vti_bin“

ListGUID = „{af550405-35fa-4b10-92f4-180e22039eba}“

 

Sheet1.UsedRange.ClearContents

Sheet1.ListObjects.Add xlSrcExternal, Array(SharePointURL, ListGUID), False, , Sheet1.Range(„B2“)

End Sub

Schritt 2: Aktualisieren Sie die Variablen SharePointURL und ListGUID.

  • SharePointURL – dies ist die SharePoint-Adresse plus der Ordnername /_vti_bin.
  • ListGUID – Der Name oder die GUID der Liste. Eine GUID ist eine 32-stellige numerische Zeichenfolge, die die Liste auf dem Server identifiziert.

Schritt 3: Führen Sie das Makro aus. Die Liste sollte in das Arbeitsblatt Sheet1 geladen werden.

Methode 2: Verwenden der Microsoft ACE OLEDB-Verbindung

Wir verwenden Microsoft.ACE.OLEDB.12.0 als Treiber gemäß Definition unter connectionstring.com/sharepoint/

Wir können zwei Versionen des Recordsets haben: (1) Alle herunterladen und (2) nur einige Spalten herunterladen.

(1) Laden Sie alle Datensätze herunter

Schritt 1: Kopieren Sie diese Subroutine und fügen Sie sie in ein Modul ein.

Sub DownloadSharePointList_OLEDB()

Dim conn As Object, rst As Object

Dim SharePointURL As String, ListGUID As String, query_string As String

 

Set conn = CreateObject(„ADODB.Connection“)

Set rst = CreateObject(„ADODB.Recordset“)

 

SharePointURL = „https://vmydof.sharepoint.com/sites/Sales“

ListGUID = „af550405-35fa-4b10-92f4-180e22039eba“

 

With conn

.ConnectionString = „Provider=Microsoft.ACE.OLEDB.12.0;WSS;IMEX=1;RetrieveIds=Yes;“ & _

„DATABASE=“ & SharePointURL & „;“ & „LIST={“ & ListGUID & „};“

.Open

End With

 

query_string = „SELECT * FROM [“ & ListGUID & „];“

 

With rst

If .State = 1 Then .Close

 

.ActiveConnection = conn

.CursorType = adOpenDynamic

.CursorLocation = adUseClient

.LockType = adLockOptimistic

.Source = query_string

.Open

 

If .EOF = False Then

Sheet1.UsedRange.ClearContents

Sheet1.Range(„A1“).CopyFromRecordset rst

End If

.Close

End With

 

If conn.State = 1 Then conn.Close

 

Set rst = Nothing

Set conn = Nothing

End Sub

Schritt 2: Aktualisieren Sie Folgendes:

  • Das Schlüsselwort „DATABASE“ gibt die SharePoint-URL an
  • Das Schlüsselwort „LIST“ gibt den GUID-Wert für die gewünschte SharePoint-Liste an (list=table)

Abfrage ohne Angabe von Tabellennamen. dh verwenden Sie „SELECT FROM table“ oder „SELECT FROM list“ (gleiches Ergebnis von beiden).

Schritt 3: Führen Sie das Makro aus. Die Liste sollte in das Arbeitsblatt Sheet1 geladen werden.

(2) Laden Sie bestimmte Spalten herunter

Schritt 1: Kopieren Sie diese Subroutine und fügen Sie sie in ein Modul ein.

Sub DownloadSharePointList_OLEDB()

Dim conn As Object, rst As Object

Dim SharePointURL As String, ListGUID As String, query_string As String

Dim index As Integer: index = 0

 

\’Assign SQL server connection and recordset object (Late-binding)

Set conn = CreateObject(„ADODB.Connection“)

Set rst = CreateObject(„ADODB.Recordset“)

 

SharePointURL = „https://vmydof.sharepoint.com/sites/Sales“

ListGUID = „af550405-35fa-4b10-92f4-180e22039eba“

 

With conn

.ConnectionString = „Provider=Microsoft.ACE.OLEDB.12.0;WSS;IMEX=1;RetrieveIds=Yes;“ & _

„DATABASE=“ & SharePointURL & „;“ & „LIST={“ & ListGUID & „};“

.Open

End With

 

query_string = „SELECT * FROM [“ & ListGUID & „];“

 

With rst

If .State = 1 Then .Close

 

.ActiveConnection = conn

.CursorType = adOpenDynamic

.CursorLocation = adUseClient

.LockType = adLockOptimistic

.Source = query_string

.Open

 

If .EOF = False Then

Sheet1.UsedRange.ClearContents

Do While Not .EOF

index = index + 1

Sheet1.Range(„A“ & index).Value = .Fields(„ID“).Value

Sheet1.Range(„B“ & index).Value = .Fields(„Datum“).Value

Sheet1.Range(„C“ & index).Value = .Fields(„Betrag“).Value

Sheet1.Range(„D“ & index).Value = .Fields(„Beschreibung“).Value

.MoveNext

Loop

End If

.Close

End With

 

If conn.State = 1 Then conn.Close

 

Set rst = Nothing

Set conn = Nothing

End Sub

Schritt 2: Aktualisieren Sie Folgendes:

  • Das Schlüsselwort „DATABASE“ gibt die SharePoint-URL an
  • Das Schlüsselwort „LIST“ gibt den GUID-Wert für die gewünschte SharePoint-Liste an (list=table)

Abfrage ohne Angabe von Tabellennamen. dh verwenden Sie „SELECT FROM table“ oder „SELECT FROM list“ (gleiches Ergebnis von beiden).

Schritt 3: Führen Sie das Makro aus. Die Spalten ID, Datum, Betrag und Beschreibung der Liste werden in das Arbeitsblatt Sheet1 geladen.

Benötigen Sie einen VBA Programmierer?

Wir als exact construct programmieren mit einem Team von rd. 20 Mitarbeitern seit über 10 Jahren Excel-Tools. Wir sind ein Nischenanbieter der spezialisiert auf Makros/VBA-Codes ist. Daneben unterstützen wir auch als 3rd Level Support die IT-Abteilungen rund um Probleme bei MS Office (Excel, Word, PowerPoint, etc.).

Haben Sie ein Excel-Problem? Benötigen Sie einen Makro-Programmierer? Rufen Sie uns unverbindlich an +41 52 511 05 25 oder kontaktieren Sie uns via Kontaktformular.

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Nach oben scrollen