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

Aktueller Pfad in Onedriveordner funktioniert nich

Forumthread: Aktueller Pfad in Onedriveordner funktioniert nich

Aktueller Pfad in Onedriveordner funktioniert nich
30.03.2018 17:16:16
Ueli
Hallo Zusammen
Ich bitte euch nach ewiger Suche im Netz ohne Erfolg nach Hilfe.
Der Makro soll beim öffnen des Dokuments automatisch starten und sich mit der Exceldatei verbinden und anschliessend den Seriendruck (Etiketten) ausführen.
Die Dateien sin immer im selben Ordner vorhanden. Allerdings der Ordner an verschiedenen Orten gespeichert.
Für das habe ich folgendes Makro aufzeichnen lassen und die Sache mit dem relativen Pfad _ angepasst:

Sub AutoOpen()
Dim datenPfad As String
Dim datenName As String
'Datenquelle im gleichen Ordner suchen
datenPfad = ThisDocument.Path & "\"
datenName = "Exeldatei.xlsm"
ActiveDocument.MailMerge.OpenDataSource Name:=datenPfad & datenName, _
ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, _
AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:="", _
WritePasswordDocument:="", WritePasswordTemplate:="", Revert:=False, _
Format:=wdOpenFormatAuto, Connection:= _
"Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Data Source=datenPfad & datenName;Mode= _
Read;Extended Properties=""HDR=YES;IMEX=1;"";Jet OLEDB:System _
database="""";Jet OLEDB:Registry _
Path="""";Jet OLEDB:Engine Type" _
, SQLStatement:="SELECT * FROM `Mitglieder$`", SQLStatement1:="", SubType _
:=wdMergeSubTypeAccess
With ActiveDocument.MailMerge
.Destination = wdSendToNewDocument
.SuppressBlankLines = True
With .DataSource
.FirstRecord = wdDefaultFirstRecord
.LastRecord = wdDefaultLastRecord
End With
.Execute Pause:=False
End With
End Sub


Problem:

Das ganze funktioniert auch super solange der Ordner sich auf dem lokalen Rechner befindet. Sobald ich der Ordner über OneDrive synchronisiere funktioniert die Datenverbindung mit der Exceldatei nicht mehr, und der Pfad kann nicht mehr hergestellt werden.
An was kann das liegen?
danke für eure Hilfe.
Gruss
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Aktueller Pfad in Onedriveordner funktioniert nich
01.04.2018 15:45:19
Peter(silie)
Hallo,
in welcher Datei genau funzt es dann nicht?
In der Lokalen oder in der OneDrive Datei?
Könnte sein, dass VBA ein Problem hat wegen datenPfad = ThisDocument.Path & "\"
OneDrive arbeitet mit URLs da es eine Cloud Lösung ist und somit auf einem Server liegt.
( https://docs.microsoft.com/de-de/onedrive/developer/rest-api/concepts/addressing-driveitems )
Nimm mit dem Rekorder nochmal das Herstellen mit der Datenverindung aus.
Wähle dieses mal aber "Aus dem Web" aus und guck ob es dann geht.

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Aktueller Pfad in OneDrive-Ordner nutzen


Schritt-für-Schritt-Anleitung

Um sicherzustellen, dass dein Makro auch mit OneDrive funktioniert, folge diesen Schritten:

  1. Öffne den VBA-Editor in Excel (Alt + F11).

  2. Erstelle ein neues Modul oder öffne dein bestehendes Modul.

  3. Füge den folgenden Code ein:

    Sub AutoOpen()
       Dim datenPfad As String
       Dim datenName As String
       ' Datenquelle im gleichen Ordner suchen
       datenPfad = ThisDocument.Path & "\"
       datenName = "Exceldatei.xlsm"
       ActiveDocument.MailMerge.OpenDataSource Name:=datenPfad & datenName, _
           ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, _
           AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:="", _
           WritePasswordDocument:="", WritePasswordTemplate:="", Revert:=False, _
           Format:=wdOpenFormatAuto, Connection:= _
           "Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Data Source=" & datenPfad & datenName & ";Mode=Read;Extended Properties=""HDR=YES;IMEX=1;"";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDB:Engine Type", _
           SQLStatement:="SELECT * FROM `Mitglieder$`", SQLStatement1:="", SubType:=wdMergeSubTypeAccess
       With ActiveDocument.MailMerge
           .Destination = wdSendToNewDocument
           .SuppressBlankLines = True
           With .DataSource
               .FirstRecord = wdDefaultFirstRecord
               .LastRecord = wdDefaultLastRecord
           End With
           .Execute Pause:=False
       End With
    End Sub
  4. Ändere den Dateinamen und den Pfad entsprechend deiner OneDrive-Synchronisation.

  5. Teste das Makro, indem du die Excel-Datei öffnest und das Makro automatisch ausführen lässt.


Häufige Fehler und Lösungen

Problem: Der Pfad kann nicht hergestellt werden, wenn die Datei auf OneDrive gespeichert ist.
Lösung: OneDrive verwendet URLs und nicht lokale Pfade. Stelle sicher, dass die Datenquelle korrekt verlinkt ist, indem du den Pfad manuell überprüfst.

Problem: VBA kann keine Verbindung zur Excel-Datei herstellen.
Lösung: Überprüfe, ob die Datei tatsächlich synchronisiert ist und die richtige URL verwendet wird. Verwende gegebenenfalls den VBA-Rekorder, um die Verbindung aus dem Web herzustellen.


Alternative Methoden

Falls das oben genannte Makro nicht funktioniert, kannst du folgende Methoden ausprobieren:

  • Verwendung von Power Query: Mit Power Query kannst du Daten einfach aus verschiedenen Quellen importieren, auch aus OneDrive.
  • Datenverbindung manuell herstellen: Öffne die Excel-Datei und gehe zu Daten > Abfragen und Verbindungen > Daten abrufen. Wähle die Quelle aus und stelle die Verbindung her.

Praktische Beispiele

Hier ist ein einfaches Beispiel, wie du den Pfad zu einer Excel-Datei in OneDrive anpassen kannst:

Sub TestOneDrivePath()
    Dim datenPfad As String
    datenPfad = "https://yourdomain-my.sharepoint.com/personal/username/_layouts/15/Doc.aspx?sourcedoc={document-id}&action=default&mobileredirect=true"
    MsgBox "Der Pfad zur Excel-Datei ist: " & datenPfad
End Sub

Nutze diesen Code, um den Pfad zu überprüfen und sicherzustellen, dass du die korrekte URL verwendest.


Tipps für Profis

  • Verwende relative Pfade: Wenn möglich, arbeite mit relativen Pfaden, um Probleme mit verschiedenen Speicherorten zu vermeiden.
  • Teste die Verbindung regelmäßig: Überprüfe regelmäßig, ob die Verbindung zu OneDrive funktioniert, besonders nach Änderungen an der Datei oder dem Speicherort.
  • Dokumentation lesen: Halte dich an die offiziellen Microsoft-Dokumentationen, um mehr über die Integration von VBA mit OneDrive zu erfahren.

FAQ: Häufige Fragen

1. Warum funktioniert mein Makro nicht mit OneDrive?
OneDrive verwendet URLs, die nicht mit den lokalen Pfaden kompatibel sind. Du musst sicherstellen, dass der Pfad korrekt ist.

2. Wie kann ich sicherstellen, dass die Verbindung zu OneDrive stabil ist?
Teste die Verbindung regelmäßig und stelle sicher, dass die Dateien synchronisiert sind. Verwende die Power Query-Funktion, um Daten aus OneDrive abzurufen.

3. Gibt es eine einfachere Möglichkeit, Daten aus OneDrive zu importieren?
Ja, du kannst Power Query verwenden, um Daten aus verschiedenen Quellen zu importieren, einschließlich OneDrive, was oft einfacher ist als die Verwendung von VBA.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige