Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Pfad der Verknüpfung auslesen

Forumthread: Pfad der Verknüpfung auslesen

Pfad der Verknüpfung auslesen
02.02.2022 08:20:49
Stefan
Hallo zusammen,
ich hab eine Frage bezüglich einer Verknüpfung.
Ich habe eine Excel-Datei erstellt, die nach Eingabe bestimmte Daten in ein Protokoll übernimmt und dann als neue Datei abspeichert.
Diese Excel-Datei liegt nur als Verknüpfung auf dem Laufwerk. Es kommt aber u.a. vor das die anderen Nutzer der Datei, eine weitere Verknüpfung auf den Desktop legen.
Ich würde gerne die neue Datei immer auf dem Pfad speichern, auf dem die Verknüpfung liegt.
Sprich:
Person A hat die Verknüpfung auf seinem Desktop. = Neue Datei soll auch auf dem Desktop gespeichert werden.
Person B hat die Verknüpfung auf Laufwerk D. = Neue Datei soll auch auf Laufwerk D gespeichert werden.
...
Ist es möglich den Pfad der Verknüpfung über die die Datei geöffnet wurde auszulesen?
Oder gibt es dazu einen anderen Lösungsweg?
Im vor raus schon Mal herzlichen Dank :)
Beste Grüße
Stefan
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
es gibt die Funktion FORMELTEXT()
02.02.2022 10:23:54
WF
Da kannst Du dann mit den üblichen Mitteln auslesen, was Du willst.
WF
AW: es gibt die Funktion FORMELTEXT()
02.02.2022 10:31:18
Stefan
Hallo WF,
das würde funktionieren, wenn die Verknüpfung bzw, der Pfad irgendwo in der Excel-Datei gespeichert ist. Aber das ist ja nicht der Fall.
Es ist die Verknüpfung der ExcelDatei gemeint, die ich über Windows erstellt und dann iwo auf dem Rechner platziert habe.
Gruß
Stefan
Anzeige
AW: es gibt die Funktion FORMELTEXT()
02.02.2022 11:08:39
Nepumuk
Hallo Stefan,
keine Chance.
Gruß
Nepumuk
AW: es gibt die Funktion FORMELTEXT()
02.02.2022 11:11:32
Stefan
Hallo Nepumuk,
schade aber danke für die Antwort.
Gruß
Stefan
AW: es gibt die Funktion FORMELTEXT()
02.02.2022 12:22:19
Firmus
Hallo Stefan,
probier mal das:

'Quelle: https://www.ms-office-forum.net/forum/showthread.php?t=324927
Option Explicit
Public Sub Verknuepfungen_auslesen()
Dim objShell As Object
Dim objFolder As Object
Dim objFile As Object
Dim objLink As Object
Dim xError As Long
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace("C:\Users\username\Desktop\")
For Each objFile In objFolder.items
If objFile.IsLink Then
On Error Resume Next
Set objLink = objFile.GetLink
xError = Err.Number
On Error GoTo 0
If xError = 0 Then
Call MsgBox(objLink.Path & vbLf & objLink.Target.Path & vbLf & objLink.Description)
Else
Call MsgBox("Zugriff verweigert: " & vbLf & (objLink.Path & vbLf & objLink.Target.Path & vbLf & objLink.Description))
End If
End If
Next
Set objLink = Nothing
Set objFolder = Nothing
Set objShell = Nothing
End Sub
Gruss,
Firmus
Anzeige
AW: es gibt die Funktion FORMELTEXT()
03.02.2022 06:09:46
Stefan
Hallo Firmus,
danke für den Code, ich hab mir auch den Beitrag aus dem MS-Forum angesehen.
Das Problem ist, das die Exceldatei, bzw die Verknüpfung mit der die Datei geöffnet wird, nicht im gleichen Ordner liegen. Meistens nicht mal auf dem gleichen Laufwerk.
Ich hab es jetzt anderst gelöst.
Ich les den Windows-Benutzer-Namen aus und dadurch kann ich es in einem personenspezifischen Ordner abspeichern.
Nicht 100% optimal, aber funktional :)
Danke trzd :)
Grüße
Stefan
Anzeige
;
Anzeige

Infobox / Tutorial

Pfad der Verknüpfung in Excel auslesen


Schritt-für-Schritt-Anleitung

Um den Pfad einer Verknüpfung auszulesen, kannst du VBA (Visual Basic for Applications) verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.

  3. Füge den folgenden Code in das Modul ein:

    Option Explicit
    Public Sub Verknuepfungen_auslesen()
        Dim objShell As Object
        Dim objFolder As Object
        Dim objFile As Object
        Dim objLink As Object
        Dim xError As Long
        Set objShell = CreateObject("Shell.Application")
        Set objFolder = objShell.Namespace("C:\Users\username\Desktop\")
    
        For Each objFile In objFolder.items
            If objFile.IsLink Then
                On Error Resume Next
                Set objLink = objFile.GetLink
                xError = Err.Number
                On Error GoTo 0
    
                If xError = 0 Then
                    Call MsgBox(objLink.Path & vbLf & objLink.Target.Path & vbLf & objLink.Description)
                Else
                    Call MsgBox("Zugriff verweigert: " & vbLf & (objLink.Path & vbLf & objLink.Target.Path & vbLf & objLink.Description))
                End If
            End If
        Next
    
        Set objLink = Nothing
        Set objFolder = Nothing
        Set objShell = Nothing
    End Sub
  4. Ändere den Pfad in Set objFolder = objShell.Namespace("C:\Users\username\Desktop\") zu dem Ordner, in dem deine Verknüpfungen liegen.

  5. Führe das Skript aus, um die Pfade der Verknüpfungen auszulesen.


Häufige Fehler und Lösungen

  • Fehler: Zugriff verweigert
    Wenn du die Meldung "Zugriff verweigert" erhältst, stelle sicher, dass du die richtigen Berechtigungen für den Ordner hast, in dem die Verknüpfungen liegen.

  • Fehler: Kein Zugriff auf den Link
    Achte darauf, dass die Excel-Datei geöffnet ist, und dass sich die Verknüpfungen im richtigen Ordner befinden.


Alternative Methoden

Eine alternative Möglichkeit, den Pfad der Verknüpfung auszulesen, besteht darin, den Windows-Benutzernamen auszulesen und die Datei in einem benutzerspezifischen Ordner zu speichern. Dies kann in einigen Fällen eine einfache Lösung bieten, wenn die Verknüpfungen nicht im gleichen Ordner liegen.

Dim username As String
username = Environ("USERNAME")

Hiermit kannst du den Benutzernamen abrufen und die Datei entsprechend speichern.


Praktische Beispiele

Ein Beispiel für die Verwendung des oben genannten Codes könnte so aussehen: Wenn Person A die Verknüpfung auf dem Desktop hat und Person B auf Laufwerk D, kannst du den Code anpassen, um den jeweiligen Pfad dynamisch auszulesen und die Datei an den richtigen Ort zu speichern.


Tipps für Profis

  • Nutze Debug.Print, um Fehlermeldungen und Variablen während der Ausführung zu überwachen.
  • Überlege, ob es sinnvoll ist, die Pfade in einer Excel-Tabelle zu speichern, um die Übersichtlichkeit zu erhöhen.
  • Teste den Code in verschiedenen Umgebungen, um sicherzustellen, dass er in allen Szenarien funktioniert.

FAQ: Häufige Fragen

1. Kann ich den Pfad der Verknüpfung direkt in Excel anzeigen lassen?
Nein, der Pfad muss über ein VBA-Makro ausgelesen werden, da Excel keine integrierte Funktion dafür bietet.

2. Was mache ich, wenn der VBA-Code nicht funktioniert?
Überprüfe die Pfadangaben und stelle sicher, dass die Excel-Anwendung die notwendigen Berechtigungen hat. Teste auch, ob die Verknüpfungen korrekt erstellt sind.

3. Funktioniert dieser Code in allen Excel-Versionen?
Der Code sollte in den meisten modernen Excel-Versionen funktionieren, die VBA unterstützen. Achte darauf, dass du die richtigen Sicherheitseinstellungen für Makros aktiviert hast.

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