Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Desktopverknüpfung - On Error Handling | Herbers Excel-Forum


Betrifft: Desktopverknüpfung - On Error Handling von: Dietmar aus Aachen
Geschrieben am: 27.11.2009 19:32:33

Hallo zusammen,

Habe einen Code mit dem ich für eine bestimmte Datei auf dem Desktop eine Verknüpfung erstellen kann. Soweit so gut.

Irgendwie funktioniert meine Msgbox-Fehlermeldung jedoch nicht. Auch dann, wenn die Verknüpfung angelegt wurde, erfolgt die Fehlermeldung. Diese soll natürlich nur erscheinen, wenn die Verknüpfung nicht erstellt werden konnte, weil die Datei z.B. im vorgesehenen Ordner nicht vorhanden ist.

Sub VerknüpfungTest()

    Dim strDesktop As String
    Dim objLink As Object
    Dim strFile As String
    Dim strPath As String
    Dim objWSH As Object
    
    On Error GoTo Fin
    
    strPath = "C:\Testordner\" ' anpassen
    strFile = "Testverknüpfung.xls" ' anpassen
    Set objWSH = CreateObject("WScript.Shell")
    strDesktop = objWSH.SpecialFolders("Desktop")
    Set objLink = objWSH.CreateShortcut(strDesktop & "\" & strFile & ".lnk")
    With objLink
        .Targetpath = strPath & strFile
        .Save
    End With
    
MsgBox "Kaum geklickt ... und schon fertig :-)"

Fin:
    Set objWSH = Nothing

    MsgBox "ACHTUNG Datei fehlt!" _

    
End Sub

Kann mir jemand auf die Sprünge helfen?
Danke.

Dietmar aus Aachen

  

Betrifft: AW: Desktopverknüpfung - On Error Handling von: Nepumuk
Geschrieben am: 27.11.2009 20:17:03

Hallo,

versuch es mal so:

Sub VerknüpfungTest()
    
    Dim strDesktop As String
    Dim objLink As Object
    Dim strFile As String
    Dim strPath As String
    Dim objWSH As Object
    
    On Error GoTo Fin
    
    strPath = "C:\Testordner\" ' anpassen
    strFile = "Testverknüpfung.xls" ' anpassen
    Set objWSH = CreateObject("WScript.Shell")
    strDesktop = objWSH.SpecialFolders("Desktop")
    Set objLink = objWSH.CreateShortcut(strDesktop & "\" & strFile & ".lnk")
    With objLink
        .Targetpath = strPath & strFile
        .Save
    End With
    
    MsgBox "Kaum geklickt ... und schon fertig :-)"
    
    cleanup:
    Set objWSH = Nothing
    
    Exit Sub
    Fin:
    MsgBox "ACHTUNG Datei fehlt!"
    Resume cleanup
    
End Sub

Gruß
Nepumuk


  

Betrifft: Nein, erstellt leere Verknüpfung von: Dietmar aus Aachen
Geschrieben am: 27.11.2009 20:36:17

Hallo Nepumuk,

danke für Deine Rückmeldung.
Leider gehts so nicht. Es wird eine Verknüpfung erstellt, obwohl die Datei gar nicht vorhanden ist. Diese hat dann natürlich keinen Bezug und öffnet "Durchsuchen".

Wäre vielleicht eine vorgelagerte If ... Else - Prüfung die Lösung? Wie müsste diese aussehen?

Vielen Dank!

Dietmar aus Aachen


  

Betrifft: AW: Nein, erstellt leere Verknüpfung von: Nepumuk
Geschrieben am: 27.11.2009 20:54:56

Hallo,

na dann so:

Sub VerknüpfungTest()
    
    Dim strDesktop As String
    Dim objLink As Object
    Dim strFile As String
    Dim strPath As String
    Dim objWSH As Object
    
    On Error GoTo Fin
    
    strPath = "C:\Testordner\" ' anpassen
    strFile = "Testverknüpfung.xls" ' anpassen
    If Dir$(strPath & strFile) = "" Then Error 53
    
    Set objWSH = CreateObject("WScript.Shell")
    strDesktop = objWSH.SpecialFolders("Desktop")
    Set objLink = objWSH.CreateShortcut(strDesktop & "\" & strFile & ".lnk")
    With objLink
        .Targetpath = strPath & strFile
        .Save
    End With
    
    MsgBox "Kaum geklickt ... und schon fertig :-)"
    
    cleanup:
    Set objWSH = Nothing
    
    Exit Sub
    Fin:
    MsgBox "Fehler " & Err.Number & vbLf & _
        Err.Description, vbCritical, "Fehlermeldung"
    Resume cleanup
    
End Sub


Gruß
Nepumuk


  

Betrifft: YESS Super danke! von: Dietmar aus Aachen
Geschrieben am: 28.11.2009 00:55:40

Hallo Nepumuk,

klasse, so gehts!

Dietmar aus Aachen


Beiträge aus den Excel-Beispielen zum Thema "Desktopverknüpfung - On Error Handling"