Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: In Sharepoint-Datei schreiben

In Sharepoint-Datei schreiben
16.12.2019 13:25:43
Patrick
Hallo zusammen,
ich möchte, per VBA-Skript einen bestimmten Wert in eine bestimmte Zelle in einer Excel-Datei schreiben lassen, welche sich auf einem Sharepoint befindet.
Grundsätzlich funktioniert das Skript schon. Allerdings nur, wenn die Ziel-Datei lokal auf dem PC liegt.
Das ist mein Code:
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
Set obj_wkb_ziel = Workbooks("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)
lng_zeile = rng_finden.Row
.Cells(lng_zeile, 5) = obj_wks_quelle.Range("B4")
End With
Range("B4").ClearContents
End Sub
Wenn ich das Makro ausführe (ausgelöst durch einen Button), makiert er mir die Zeile gelb, in welcher der Sharepoint-Pfad steht.
Kann mir jemand sagen, was ich falsch mache?
Hab ich ggf. falsch deklariert?
Btw: Ich bin VBA Anfänger! Den hier gezeigten Code habe ich nur mit Hilfe dieser Community geschrieben. (Danke nochmal dafür :) )
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: In Sharepoint-Datei schreiben
16.12.2019 13:51:50
fcs
Hallo Patrick,
soweit ich das sehe fehlt zumindest die Open-Anweisung beim Setzen der Sharpoint-Datei
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")

LG
Franz
Anzeige
AW: In Sharepoint-Datei schreiben
16.12.2019 13:58:39
Patrick
Hallo Franz,
danke dir für die schnelle Antwort.
Hhhmmm…..als im besten Fall soll er die Excel-Datei gar nicht öffnen sondern nur einen Wert in eine bestimmte Zelle dieser Datei eintragen.
Ich habe die Open-Anweisung mal umgesetzt.
Jetzt öffnet er die Excel-Datei, aber Werte werden nicht eingetragen.
Also wie gesagt: Am besten soll die Excel auf dem SharePoint gar nicht geöffnet werden.
Anzeige
AW: In Sharepoint-Datei schreiben
16.12.2019 14:30:41
fcs
Hallo Patick,
ohne öffnen der Datei wird es schwierig - ist wie Waschen aber mach mich nicht nass.
Mann kann aber die Bildschirmaktualisierung vorübergehend deaktivieren und die Datei sofort nach der Übertragung des Wertes wieder schliessen.
Problem "Es wird kein Wert übertragen":
Ist denn in Zelle B4 des Quelltabellenblatts auch ein Wert vorhanden?
Zusätzlich sollte man prüfen, ob die Zeile mit dem Suchwert auch gefunden wurde.
LG
Franz
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
Application.ScreenUpdating = False
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 rng_finden Is Nothing Then
'do nothing
MsgBox "Wert """ & obj_wks_quelle.Range("B1").Value & """ nicht gefunden!", vbOKOnly
Else
lng_zeile = rng_finden.Row
.Cells(lng_zeile, 5) = obj_wks_quelle.Range("B4")
End If
End With
obj_wks_quelle.Range("B4").ClearContents '? Löschen im Quellblatt oder Zielblatt ?
'Zieldatei speichen und schliessen
obj_wkb_ziel.Close Savechanges:=True
Application.ScreenUpdating = True
End Sub

Anzeige
AW: In Sharepoint-Datei schreiben
16.12.2019 15:16:01
Patrick
Hi Franz,
wie würde das dann aussehen mit der Deaktivierung der Bildschirmaktualsierung?
Und wird dann trotzdem der eingetragene Wert in der Zieldatei gespeichert?
Problem "Es wird kein Wert übertragen":
Hat sich erledigt - ich hatte falsche Zellen angegeben im Code.
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

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

  1. 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.

  2. 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.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige