In SharePoint-Datei schreiben mit VBA
Schritt-für-Schritt-Anleitung
Um einen Wert in eine Excel-Datei auf SharePoint zu schreiben, kannst du das folgende VBA-Skript verwenden. Achte darauf, dass du die Datei mit der Open
-Methode öffnest, bevor du darauf zugreifst. Hier ist ein funktionierendes Beispiel:
Public Sub Uebertrag()
Dim obj_wks_ziel As Worksheet
Dim obj_wks_quelle As Worksheet
Dim obj_wkb_ziel As Workbook
Dim obj_wkb_quelle As Workbook
Dim lng_zeile As Long
Dim rng_finden As Range
' Bildschirmaktualisierung deaktivieren
Application.ScreenUpdating = False
' SharePoint-Datei öffnen
Set obj_wkb_ziel = Workbooks.Open("https://sharepoint.xx.xxxx.de/sites/DMS/Arbeitsbereich/Freigegebene%20Dokumente/PM%20und%20Service/Datenanalyse/Masterliste_122019.xlsx?web=1")
Set obj_wks_ziel = obj_wkb_ziel.Worksheets("Masterliste_122019")
Set obj_wkb_quelle = ThisWorkbook
Set obj_wks_quelle = obj_wkb_quelle.Worksheets("Tabelle1")
With obj_wks_ziel
Set rng_finden = .Range("A:A").Find(obj_wks_quelle.Range("B1").Value, lookat:=xlWhole)
If Not rng_finden Is Nothing Then
lng_zeile = rng_finden.Row
.Cells(lng_zeile, 5) = obj_wks_quelle.Range("B4")
Else
MsgBox "Wert """ & obj_wks_quelle.Range("B1").Value & """ nicht gefunden!", vbOKOnly
End If
End With
' Zelle im Quellblatt leeren
obj_wks_quelle.Range("B4").ClearContents
' Zieldatei speichern und schließen
obj_wkb_ziel.Close Savechanges:=True
' Bildschirmaktualisierung wieder aktivieren
Application.ScreenUpdating = True
End Sub
Häufige Fehler und Lösungen
-
Fehler: Datei öffnet sich, aber kein Wert wird übertragen
Überprüfe, ob der Wert in der Quellzelle (B4) tatsächlich vorhanden ist und dass die Suchzelle (B1) einen passenden Eintrag in der Zieldatei findet.
-
Fehler: Der Pfad zur SharePoint-Datei ist falsch
Stelle sicher, dass der vollständige Pfad zur Datei korrekt eingegeben wurde. Eventuelle Leerzeichen oder spezielle Zeichen können Probleme verursachen.
-
Problem: Bildschirmaktualisierung
Wenn du die Bildschirmaktualisierung nicht deaktivierst, kann das Skript langsam werden. Verwende Application.ScreenUpdating = False
, um die Leistung zu verbessern.
Alternative Methoden
Wenn du keine VBA-Programmierung verwenden möchtest, kannst du auch die Excel-Funktionalitäten wie Power Query oder den Excel-Add-In für SharePoint nutzen. Diese Methoden erfordern kein Programmieren, bieten aber möglicherweise nicht die gleiche Flexibilität wie VBA.
Praktische Beispiele
-
Werte von einem lokalen Blatt in eine SharePoint-Datei übertragen
Verwende das oben angegebene VBA-Skript, um gezielt Werte zu übertragen. Stelle sicher, dass die Zellen korrekt referenziert sind.
-
Automatisierte Berichterstellung
Erstelle ein Makro, das regelmäßig Werte von einer lokalen Datei in eine SharePoint-Datei überträgt, um die Daten aktuell zu halten.
Tipps für Profis
-
Nutze Fehlerbehandlungsroutinen in deinem VBA-Code, um unerwartete Fehler abzufangen und benutzerfreundliche Fehlermeldungen anzuzeigen.
-
Dokumentiere deinen Code gut, insbesondere wenn du in einem Team arbeitest. So können andere Teammitglieder deinen Code leichter verstehen und anpassen.
-
Experimentiere mit der Application.DisplayAlerts
-Eigenschaft, um Benachrichtigungen während des Speicherns zu steuern.
FAQ: Häufige Fragen
1. Muss die Excel-Datei auf SharePoint geöffnet werden, um Werte zu übertragen?
Ja, die Datei muss geöffnet sein, um Änderungen vorzunehmen. Du kannst jedoch die Bildschirmaktualisierung deaktivieren, um den Prozess zu beschleunigen.
2. Was passiert, wenn der Suchwert nicht gefunden wird?
Wenn der Suchwert nicht gefunden wird, zeigt das Skript eine Meldung an, die darüber informiert, dass der Wert nicht gefunden wurde.
3. Kann ich das Skript auch in anderen Excel-Versionen verwenden?
Ja, das Skript sollte in den meisten Excel-Versionen funktionieren, die VBA unterstützen, wie Excel 2010, 2013, 2016 und neuer. Achte jedoch auf mögliche Unterschiede in den Funktionen.