Anzeige
Archiv - Navigation
1376to1380
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Excelverknüpfung öffnen

Excelverknüpfung öffnen
19.08.2014 19:02:32
Peter
Hallo Zusammen
Leider schaff ich es nicht alleine (WEB)
Ich habe eine Verknüpfung in einem Order, die ich zuerst abfragen will, wie sie genau heisst und überhaupt vorhanden ist, danach möchte ich sie gerne öffnen.
Hier mal mein (Web) Code zum öffnen
Sub X_Aufruf()
Dim z
z = Aufruf
End Sub
Function Aufruf()
Dim x
x = Shell("Start ""C:\Users\Peter\_1-Peter\TMP\Coop.lnk""")
End Function
Leider bekomme ich die Fehlermeldung "Datei nicht gefunden" obwohl sie vorhanden ist.
Wer kann mir helfen
lieben Dank
Pepi

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excelverknüpfung öffnen
20.08.2014 09:03:49
Frank
Hallo Peter,
zwei Dinge fallen mir da auf:
1) Syntax lt. XL-Hilfe: Shell(pathname[,windowstyle])
Als erster Parameter wird der Dateiname erwartet, als zweites, optional die Angabe zum Fenster. Parameter werden durch Kommata getrennt. Der Eintrag "Start " aus Deinem Code ergibt so keinen Sinn.
2) Die Shell-Funktion führt ein ausführbares Programm aus. '.lnk' gehört da m.E. nicht dazu. Also auch ohne den '"Start "' Eintrag wirst Du eine Fehlermeldung erhalten - sinngemäss 'ungültiges Argument'.
Grüsse,
Frank

AW: Excelverknüpfung öffnen
20.08.2014 09:43:33
Peter
Lieber Frank
Vielen Dank für Deine Antwort - leider kann ich damit nicht viel anfangen, weil ich den Fehler nicht sehe und die Syntax nicht verstehe.
Es würde mich auch interessieren, wie ich den Pfad hinter der Verknüpfung ausfindig machen kann.
mfg Pepi

Anzeige
Was genau hast Du vor?
20.08.2014 10:43:05
Frank
Hallo Peter,
Wichtig wäre, zu wissen, was Du mit der Verknüpfung vor hast. Warum willst Du auf die Verknüpfung zugreifen und nicht auf die Datei selbst, auf die die Verknüpfung verweist? Was ist das für eine Datei? Soll sie in einer eigenen Application (IE, Word etc) gestartet werden? Willst Du den Inhalt ins XL importieren? Hilft Dir vielleicht schon HYPERLINK im XL (verweist auf externe Dateien und öffnet diese mit der zugehörigen Application)?
Ansonsten ist Dateihandling über VBA schon nicht mehr unbedingt was für Anfänger. Stichpunkte für die Suche in der Online-Hilfe des VBA-Editors: GetFile, GetAbsolutePath, GetFolder.
Es würde mich auch interessieren, wie ich den Pfad hinter der Verknüpfung ausfindig machen kann.
Windowsexplorer öffnen, Rechtsklick auf die .lnk-Datei, 'Eigenschaften' (letzter Eintrag in Pop-Up-Menü), Reiter Verknüpfung - 'Ziel:'
Da erfährst Du, wohin der Link verweist.
Grüsse,
Frank

Anzeige
AW: Was genau hast Du vor?
20.08.2014 13:43:14
Peter
Hallo Frank
Du hast dir ja ganz viel Mühe gegeben um meine Frage zu beantworten - vielen Dank.
Klar kann ich auf die Originaldatei zugreifen - es kann eben sein, dass die ihren Pfad ändert.
Da die Datei auf einem Server liegt kann der Pfad je nach PC-Konfiguration: N:\Verkauf\... oder eben mit \\xx...\Verkauf\.... beginnen. Diesen Unterschied muss ich zuerst auswerten, sonst bockt das Marko später. Deshalb wäre das Auslesen des Pfades toll - das über die Eigenschaften habe ich auch rausgefunden - leider schreibt der Makorrecorder dabei nicht mit. Ja, vielleicht gibt es doch eine Lösung.
vielen Dank
Pepi

Anzeige
AW: Was genau hast Du vor?
20.08.2014 15:42:03
Mullit
Hallo,
da mußt Du dich ein bißchen durch die Objekte hangeln:
Wenn Du nur eine Verknüpfung in dem Ordner hast, dann so:
Option Explicit

Public Sub prcOpenLink()
    Dim objShell As Object
    Dim objFSO As Object
    Dim objFolder As Object
    Dim objFile As Object
    Dim strPath As String
    strPath = "C:\Users\Peter\_1-Peter\TMP"
    Set objShell = CreateObject("Shell.Application")
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objFolder = objFSO.GetFolder(strPath)
    For Each objFile In objFolder.Files
       With objFile
           If objFSO.GetExtensionName(.Path) = "lnk" Then
             objShell.ShellExecute .Name, "", strPath, "open", 1
             Set objFile = Nothing
             Exit For
           End If
       End With
    Next
    Set objFSO = Nothing
    Set objFolder = Nothing
    Set objShell = Nothing
End Sub


VBA/HTML - CodeConverter für Office-Foren
AddIn für Excel/Word 2000-2010 - komplett in VBA geschrieben von Lukas Mosimann
Projektbetreuung durch mumpel



Code erstellt und getestet in Office 12

sonst über den Namen:
'...
For Each objFile In objFolder.Files
With objFile
If .Name = "Coop.lnk" Then
objShell.ShellExecute .Name, "", strPath, "open", 1
Set objFile = Nothing
Exit For
End If
End With
Next
'...

Gruß,
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige