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

Forumthread: Verknüpfung mit Symbol-Bild erstellen

Verknüpfung mit Symbol-Bild erstellen
Dietmar
Hallo zusammen!
Folgenden Code habe ich hier im Forum erhalten ... und ... er funktioniert klasse!
Ist es möglich diesen Code so zu erweitern, dass die Verknüpfung direkt mit einem Symbol dargestellt wird?
Beispielsweise mit dem Schmetterling, den man als OrdnerSymbol verwenden kann:
%SystemRoot%\system32\SHELL32.dll
Händisch lässt sich dies bei Verknüpfungen ja nachholen (Rechtsklick auf die Verknüpfung >Eigenschaften >anderesSymbol).
Somit vermute ich, dass das auch direkt codiert werden kann.
Jemand eine Ahnung wie der nachfolgende Code angepasst werden müsste?
Vielen Dank vorab!
Dietmar aus Aachen
Hier der Code:
Sub DesktopVerknüpfungErstellen()
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:\OrdnerXY\" ' anpassen
strFile = "DateiXY" ' 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 "Fertig!", vbInformation, "Meldung"
cleanup:
Set objWSH = Nothing
Exit Sub
Fin:
MsgBox "Die Verknüpfung konnte NICHT erstellt werden; Datei nicht vorhanden.", vbCritical, " _
Hinweis"
Resume cleanup
End Sub

Anzeige

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

Betreff
Benutzer
Anzeige
AW: Verknüpfung mit Symbol-Bild erstellen
26.01.2010 21:58:16
Tino
Hallo,
könnte so gehen.
Mit der Nummer hinten bei .IconLocation ... kannst Du das Symbol einstellen.
Sub Beispiel()
Dim oShell As Object, oLink As Object
Dim strDesktop$, strPath$, strFile$, strLinkName$
strPath = "C:\OrdnerXY\" 'Ordner anpassen
strFile = "timer 2.xls"  'Dateiname anpassen
strLinkName = "xxxx.lnk" 'wie soll der link heißen?
If Dir(strPath & strFile)  "" Then
' Verweis auf den Windows Scripting Host erstellen
Set oShell = CreateObject("WScript.Shell")
'Desktoppfad?
strDesktop = oShell.SpecialFolders("Desktop")
strDesktop = IIf(Right$(strDesktop, 1) = "\", strDesktop, strDesktop & "\")
' Neuen Link Erstellen auf strDesktop
Set oLink = oShell.CreateShortcut(strDesktop & strLinkName)
With oLink
.TargetPath = strPath & strFile 'Pfad zur Datei
.IconLocation = "%SystemRoot%\system32\SHELL32.dll, 4" 'Symbol
.Save 'speichern
End With
End If
Set oLink = Nothing
Set oShell = Nothing
End Sub
Gruß Tino
Anzeige
Tino KLASSE! habe was ergänzt, o.k. so?
27.01.2010 15:52:50
Dietmar
Hallo Tino,
hammerstark! Danke.
Habe noch Errormeldung und Erfolgsmeldung reingebastelt. Funktioniert auch.
Schau doch mal bitte drüber, ob ich etwas gravierendes falsch gemacht habe, oder ob es so gut ist.
Herzlichen Dank!
Viele Grüße
Dietmar aus Aachen
Sub BeispielVonDietmarErgaenzt()
Dim oShell As Object, oLink As Object
Dim strDesktop$, strPath$, strFile$, strLinkName$
On Error GoTo Fin   'von Dietmar ergänzt
strPath = "C:\OrdnerXY\" 'Ordner anpassen
strFile = "timer 2.xls"  'Dateiname anpassen
strLinkName = "NameLink.lnk" 'wie soll der link heißen?
If Dir(strPath & strFile) = "" Then Error 53    'On Error-Meldung von Dietmar ergänzt
' Verweis auf den Windows Scripting Host erstellen
Set oShell = CreateObject("WScript.Shell")
'Desktoppfad?
strDesktop = oShell.SpecialFolders("Desktop")
strDesktop = IIf(Right$(strDesktop, 1) = "\", strDesktop, strDesktop & "\")
'Neuen Link Erstellen auf strDesktop
Set oLink = oShell.CreateShortcut(strDesktop & strLinkName)
With oLink
.TargetPath = strPath & strFile 'Pfad zur Datei
.IconLocation = "%SystemRoot%\system32\SHELL32.dll, 43" 'Symbol Schmetterling = 130,  _
Stern = 43
.Save 'speichern
End With
MsgBox "Ja! das hat geklappt!", vbInformation, "Erfolgsmeldung"
'End If     'von Dietmar auskommentiert
cleanup: 'von Dietmar ergänzt
Set oLink = Nothing
Set oShell = Nothing
Exit Sub:   'von Dietmar ergänzt
Fin:    'von Dietmar ergänzt
MsgBox "Nein! hat leider nicht geklappt, die Datei ist nicht vorhanden.", vbCritical, " _
Negativmeldung"  'von Dietmar ergänzt
End Sub

Anzeige
AW: Tino KLASSE! habe was ergänzt, o.k. so?
27.01.2010 16:55:27
Tino
Hallo,
schaut eigentlich gut aus, bis auf die Fehlerbehandlung.
Die würde ich eventuell so machen.
Sub BeispielVonDietmarErgaenzt()

Dim oShell As Object, oLink As Object
Dim strDesktop$, strPath$, strFile$, strLinkName$

On Error GoTo ErrorHandler:  'von Dietmar ergänzt 

    strPath = "C:\OrdnerXY\" 'Ordner anpassen 
    strFile = "timer 2.xls"  'Dateiname anpassen 
    strLinkName = "NameLink.lnk" 'wie soll der link heißen? 

If Dir(strPath & strFile) = "" Then GoTo Fin: 'On Error-Meldung von Dietmar ergänzt 
    
    ' Verweis auf den Windows Scripting Host erstellen 
    Set oShell = CreateObject("WScript.Shell")
    
    'Desktoppfad? 
    strDesktop = oShell.SpecialFolders("Desktop")
    strDesktop = IIf(Right$(strDesktop, 1) = "\", strDesktop, strDesktop & "\")
    
    'Neuen Link Erstellen auf strDesktop 
    Set oLink = oShell.CreateShortcut(strDesktop & strLinkName)
    
    With oLink
        .TargetPath = strPath & strFile 'Pfad zur Datei 
        .IconLocation = "%SystemRoot%\system32\SHELL32.dll, 43" 'Symbol Schmetterling = 130, Stern = 43 
        .Save 'speichern 
    End With
        
    MsgBox "Ja! das hat geklappt!", vbInformation, "Erfolgsmeldung"

Cleanup: 'von Dietmar ergänzt 

Set oLink = Nothing
Set oShell = Nothing
    
Exit Sub   'von Dietmar ergänzt 
    
Fin:    'von Dietmar ergänzt 
MsgBox "Nein! hat leider nicht geklappt, die Datei ist nicht vorhanden.", vbCritical, "Negativmeldung"  'von Dietmar ergänzt 
GoTo Cleanup:

ErrorHandler:
MsgBox "FehlerNummer: " & Err.Number & vbCr & vbCr & Err.Description, vbCritical, "Hat leider nicht geklappt!"
GoTo Cleanup:
End Sub
Gruß Tino
Anzeige
Das mit dem Error-Handler ist wirklich gut!
27.01.2010 17:46:20
Dietmar
Danke Tino,
das ist perfekt! Dass mal eine Symbolnummer nicht vorhanden sein könnte, hatte ich nicht bedacht. Ich hatte vermutet, dass eine Nr. 43 immer vorhanden ist; sollte der Stern mal bei einem Betriebssystem entfertn worden sein, dann dachte ich , dass automatisch ein anderes Symbole auf die Nr. 43 nachrückt. Ist aber wohl nicht so.
Kann ich eigentlich grundsätzlich davon aus gehen, dass die Symbolnummern bei allen Windows-Betriebssystemen identisch sind?
Viele Grüße
Dietmar aus Aachen
Anzeige
ich kann Dir auch nicht sagen...
27.01.2010 17:51:10
Tino
Hallo,
ob die auf allen Systemen gleich sind.
Gruß Tino
... ok, sei's drum die Sache ist Spitze!
27.01.2010 18:16:57
Dietmar
Hallo Tino,
vielen Dank, du hast mir sehr geholfen.
Dietmar aus Aachen
;
Anzeige
Anzeige

Infobox / Tutorial

Verknüpfung mit Symbol-Bild in Excel erstellen


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.

  2. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf „VBAProject (deine Datei)“ > Einfügen > Modul.

  3. Kopiere den folgenden Code in das Modul:

    Sub VerknüpfungMitSymbolErstellen()
        Dim oShell As Object, oLink As Object
        Dim strDesktop As String, strPath As String, strFile As String, strLinkName As String
    
        strPath = "C:\OrdnerXY\" 'Ordner anpassen
        strFile = "DateiXY.xls"  'Dateiname anpassen
        strLinkName = "MeineLink.lnk" 'Wie soll der Link heißen?
    
        Set oShell = CreateObject("WScript.Shell")
        strDesktop = oShell.SpecialFolders("Desktop")
    
        Set oLink = oShell.CreateShortcut(strDesktop & "\" & strLinkName)
        With oLink
            .TargetPath = strPath & strFile 'Pfad zur Datei
            .IconLocation = "%SystemRoot%\system32\SHELL32.dll, 43" 'Symbol einstellen
            .Save 'Speichern
        End With
    
        MsgBox "Verknüpfung erstellt!", vbInformation
    End Sub
  4. Passen die Pfade und Dateinamen an deine Bedürfnisse an.

  5. Führe das Skript aus: Drücke F5 oder klicke auf „Run“ im Menü.


Häufige Fehler und Lösungen

  • Fehler: Datei nicht gefunden
    Lösung: Stelle sicher, dass der Pfad und der Dateiname korrekt sind.

  • Fehler: Symbol nicht angezeigt
    Lösung: Prüfe die Symbolnummer in .IconLocation. Einige Symbole können in bestimmten Windows-Versionen fehlen.


Alternative Methoden

  1. Excel Hyperlink als Symbol darstellen: Du kannst auch Hyperlinks in Excel mit Symbolbildern verknüpfen, indem du Bilder in Zellen einfügst und diese dann mit einem Hyperlink versiehst.

  2. Excel Dropdown mit Symbolen: Du kannst ein Dropdown-Menü in Excel erstellen, das Symbole enthält, um die Benutzerinteraktion zu verbessern.


Praktische Beispiele

  • Beispiel 1: Erstelle eine Verknüpfung zu einer Excel-Datei auf dem Desktop mit einem Schmetterlingssymbol.

  • Beispiel 2: Verwende den Code, um eine Verknüpfung auf dem Desktop zu einer PDF-Datei zu erstellen und das Symbol anzupassen.

.IconLocation = "%SystemRoot%\system32\SHELL32.dll, 130" ' Symbol für Schmetterling

Tipps für Profis

  • Symbol für Verknüpfungen erstellen: Experimentiere mit verschiedenen Symbolnummern, um die gewünschten Icons zu finden.
  • Symbolverknüpfung ändern: Du kannst die Verknüpfung jederzeit ändern, indem du das Skript erneut ausführst und eine andere Symbolnummer angibst.
  • Verknüpfung Excel erstellen: Nutze die Möglichkeit, Verknüpfungen zu erstellen, um den Zugriff auf häufig verwendete Dateien zu erleichtern.

FAQ: Häufige Fragen

1. Wie kann ich ein Bild als Symbol verwenden?
Du kannst kein Bild direkt als Symbol verwenden. Stattdessen musst du ein Symbol aus einer DLL-Datei wählen.

2. Funktioniert das auch mit anderen Windows-Versionen?
Ja, der Code sollte in den meisten Windows-Versionen funktionieren, allerdings können einige Symbolnummern variieren.

3. Kann ich die Verknüpfung auf einem anderen Laufwerk erstellen?
Ja, ändere einfach den strPath im VBA-Code auf das gewünschte Laufwerk.

4. Wie kann ich die Verknüpfung auf meinem Desktop anpassen?
Klicke mit der rechten Maustaste auf die Verknüpfung und wähle „Eigenschaften“, um das Symbol zu ändern.

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