Feldanweisung zu verknüpften Excel-Dateien bei unterschiedlichen Dateipfaden
#1
Brick 
Hallo,

ich habe die Situation, dass wir mit mehreren Personen an einem Projekt arbeiten, bei dem alle Dateien via Dropbox synchronisiert werden. Im selben Dropboxordner von der WORD-Datei befinden sich auch EXCEL-Dateien. Diese EXCEL-Dateien sind als Anlage in der WORD-Datei verknüpft (Hauptdokument ist also das word mit excel Anlagen). Nun die Herausforderung: der Dropboxordner hat im WIN-Explorer unterschiedliche Pfade, da er vom Nutzernamen abhängt. 


Es ist beim Einfügen eines Objekts nicht möglich, die standard Explorer Variable %UserName% als Platzhalter im Pfad zur Namensdetektion zu nutzen. Jetzt habe ich es mit Feldanweisungen probiert, kann aber nicht herausfinden, wie man den Pfad korrekt eingibt. Folgende Feldfunktionen funktionieren, allerdings nur auf den jeweiligen PC und nicht auf denen der anderen:

Code:
{ LINK Excel.Sheet.12 "C:\\Users\\Andi\\Dropbox\\Kanban-Board_v2.xlsx" "" \p \* MERGEFORMAT }
{ LINK Excel.Sheet.12 "C:\\Users\\Maxx\\Dropbox\\Kanban-Board_v2.xlsx" "" \p \* MERGEFORMAT }

Auch eine ausgiebige Internetrecherche hat mir nicht geholfen. Weis einer von euch, ob das mit WORD lösbar ist? Vielen Dank!

Feldanweisungsparameter: https://www.staff.uni-giessen.de/~g021/M...sungen.pdf
Feldanweidung INCLUDEPICTURE: https://www.holgermatthes.de/diplom-read...fuegen.php

Freundliche Grüße 
Andi
Top
#2
Hallo,

noch aktuell oder schon gelöst?
Frage:
Wenn ich dich richtig verstanden habe, suchst du nach einer Möglichkeit, beim Speichern den String in der Feldfunktion in Abhängigkeit der Variablen %Username% zu manipulieren, right?

Schon mit VBA versucht?
Code:
Ereignis:
Private Sub Document_Close()

End Sub

Workaround:
Warum nicht die Exceldatei eine Ebene oberhalb der Benutzerordner auf der Dropbox ablegen?


gruß
Marco
Top
#3
Hi,
 
standardmäßig nutzt Dropbox als Sync Ordner "C:\Users\%UserName%\Dropbox". Wenn man diesen Voreingestellten Pfad von Dropbox überhaupt ändern kann (vll. Während der Installation der App), dann müsste das jeder User so eingestellt haben (z.B. unter "C:\Dropbox"). Ansonsten sind die Pfade wieder ungleich. Es sollen ja alle Dateien (WORD und EXCEL) mit synchronisiert werden, damit jeder mit dem aktuellsten Stand arbeitet.
 
Deine Funktion ist auf VBA, also müsste ich alle .xlsx in .xlsm speichern. Ist unvorteilhaft, aber wäre zur Not denkbar. Und allein die Funktion in das WORD einzutragen reicht? Ich hätte erwartet, dass man in jeder Feldfunktion, in der der jeweilige Pfad steht, die Variable eintragen muss.
 
Freundliche Grüße
Andi
Top
#4
Hi,

gute weiterführende Ausführung deinerseits.
Jetzt ergibt sich bei mir ein anderes Bild. Vergessen wir VBA.

Bei der Dropbox lassen sich (so war es zumindest 2012 noch) Ordner freigeben.
Würde vorschlagen aus einem Account den Ordner für die anderen User freizugeben und daraus synchronisieren.

Oder habt Ihr das schon versucht?

By the way - um wieviel User handelt es sich denn?



gruß
Marco
Top
#5
Hi, danke für die Antwort.

JA - Dropbox erlaubt einen individuellen SYNC Pfad auch nach der Installation (in den Einstellungen veränderbar). Den Pfad muss jeder trotzdem gleich unter "c:/..." eingestellt haben.

Ich arbeite im Schnitt in 4-5er Teams (also nicht groß). Wahrscheinlich erweitert sich das auf mehrere Projekte. Einfacher zu managen ist von daher eine Lösung innerhalb der WORD-Datei.

Grüße Andi
Top
#6
Hallo Andi,

Wie sollte der Pfad Deiner Meinung nach aussehen?
Top
#7
Hi Mase,

Code:
{ LINK Excel.Sheet.12 "C:\\Users\\%UserName%\\Dropbox\\Kanban-Board_v2.xlsx" "" \p \* MERGEFORMAT }

wobei %UserName% für den aktuell angemeldeten Windows Nutzer stehen sollte. Auf die Idee bin ich gekommen, da ein nutzerunabhängiger Pfad im WIN-Explorer so angelegt werden kann. In EXCEL kann der Nutzername ausgelesen werden, um Ihn in eine Zelle zu schreiben. Diese Variable fehlt mir in WORD:

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

'HIER WIRD DER WIN ANMELDENAME IN ZELLE A1 geschrieben
Benutzer = Environ$("USERNAME")
Range("A1") = Benutzer

'DER VOLLSTÄNDIGKEIT HALBER: HIER WIRD NUR DER NUTZERNAME VON OFFICE INS FELD A2 GESCHRIEBEN
'DAS ÄQUIVALENTE FELD IN WORD "{ USERNAME }" GIBT DEN GLEICHEN OUTPUT UND IST SOMIT FÜR DIESEN ZWECK UNGEEIGNET
Range("A2") = Application.UserName

End Sub

Der Fall in WORD ist etwas komplizierter. Hier ist es keine einfache Zelle, sondern ein Teil innerhalb eines jeweiligen Pfads einer Feldanweisung. Ein Makro ist nur sinnvoll, wenn in WORD folgendes möglich ist:

1) Eine vorhandene Variable zu nutzen oder neu zu erstellen, die den aktuell angemeldeten WIN-Nuzter-Namen liefert
2) und diese Variable auch innerhalb jeder Feldanweisung nutzen zu können. Sprich die Feldanweisung muss die Variable im Pfad erkennen. (Ansonsten wird es komplex: WORD nach DOC öffnen => via VBA den WIN Login Prüfen und ggf ALLE Pfade substituieren).

Es geht sich darum zu wissen, ob WORD das überhaupt leisten kann.


Grüße Andi
Top
#8
zu1)
Environ$("username") ist deine gesuchte Umgebungsvariable.
Die Methode
Code:
Selection.TypeText Environ$("username")
schreibt den Inhalt der variable quasi an der Stelle des Dokuments, wo sich derzeit der Cursor befindet.

zu2)
Nimm den Makrorekorder und zeichne auf, wie du die Feldfunktion manuell erstellst.(Entwicklertools)
Wenn fertig mit ALT+F11 in den VBA-Editor wechseln und den Code anschauen.

In Kombination mit 1) dürftest Du Dein Ziel erreichen.

Alle Angaben ungetestet und ohne Gewähr, versteht sich :)
[-] Folgende(r) 1 Nutzer sagt Danke an Mase für diesen Beitrag:
  • Andi_Koer_1234
Top
#9
Hi Andi,

falls Du doch Hilfe benötigst beim umsetzen, melde dich einfach.
Würde mich auch interessieren ob es klappt .
Top
#10
Hallo,

ja ich melde mich. Wird etwas dauern, da die Projektergebnisse vorrangig sind. Sobald ich mehr Luft habe, gehe ich an das Thema ran. Wir müssen uns letzten Endes auch für einen Weg entscheiden.

Danke nochmal!

Grüße Andi
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste