Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1956to1960
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

ico-Datei mit VBA speichern und als Icon verwenden

ico-Datei mit VBA speichern und als Icon verwenden
31.12.2023 07:22:17
Stefan
Moin zusammen,

ich stehe hier vor einem Problem:

Ich möchte eine Excel-Datei auf verschiedenen - voneinander unabhängig - Rechnern arbeiten lassen.
Über eine Abfrage prüfe ich, ob die für die Datei benötigten Ordner vorhanden sind, wenn nicht, dann werden sie erstellt.

Ist es nun möglich, auch eine Icon-Datei mit dieser Excel-Datei zu speichern, die über VBA in einen auf dem Rechner vorhandenen Ort gespeichert wird und die dann später als Desktop-Shortcut funktioniert?

Das Shortcut ist bereits lauffähig, es soll nur ein eigenes Icon bekommen.

Gruß Stefan

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ico-Datei mit VBA speichern und als Icon verwenden
31.12.2023 13:07:59
volti
Hallo Stefan,

eine Ico-Datei oder besser ein Icon kannst Du als Bild in einem Image-Objekt bequem in Deiner Exceldatei speichern. Hier hast Du dann einfachen Zugriff drauf in Deiner Exceldatei. Für das Speichern eines solchen Icons in einer neuen ICO-Datei habe ich gerade kein Code-Beispiel. Das geht aber mit Sicherheit auch.

Du kannst aber auch die ICO-Datei via VBA einlesen und die einzelnen Bytes einzeln in Zellen im einem Tabellenblatt speichern oder einen String basteln und den dann in einem Tabellenblatt ablegen.
Hieraus lässt sich dann ganz leicht wieder eine ICO-Datei erstellen.

Ein Beispiel hierzu kannst Du hier in diesem Beitrag sehen. Vielleicht hilft Dir das ja schon weiter.
https://www.clever-excel-forum.de/Thread-Aufgerufene-Exceldatei-automatisch-auf-Desktop-verknuepfen

PS. Die ICO-Daten sind im hiddenBlatt ICON abgelegt.

Gruß
Karl-Heinz
Anzeige
AW: ico-Datei mit VBA speichern und als Icon verwenden
31.12.2023 14:56:19
Stefan
Danke euch beiden :)

nun habe ich die .ico-Datei schonmal als Bild in einem eigenen Tabellenblatt....

Gibt es nun noch eine Möglichkeit, die Datei -also das Bild- direkt als Icon zu verwenden oder muss ich das separat in einem Ordner speichern?

da habe ich auch schon verschiedenes ausprobiert....allerdings ist die kopierte Datei leer....also 0 Byte und keine Anzeige...

Habt ihr da vielleicht noch eine weitergehende Lösung?
AW: ico-Datei mit VBA speichern und als Icon verwenden
01.01.2024 08:31:57
Stefan
Moin Karl-Heinz und ein Frohes Neues Jahr :)

bei deinem Code wird gemeckert....

Set oPic = Sheets("Tabelle1").Image2.Picture

Laufzeitfehler 438: Objekt unterstützt diese Methode nicht.....

Ich habe die .ico-Datei in Tabelle1 im Feld A1 abgelegt.....also über "Einfügen - Bilder - in einer Zelle - von diesem Gerät"

Viele Grüße
Stefan
Anzeige
AW: ico-Datei mit VBA speichern und als Icon verwenden
01.01.2024 08:39:30
volti
Moin und Dir auch ein frohes neues Jahr.

Dein Icon liegt auch in einem Image-Objekt und Du hast den Code entsprechend angepasst?

Am besten mal die Mappe hier hochladen.

Gruß KH
AW: ico-Datei mit VBA speichern und als Icon verwenden
01.01.2024 10:31:03
volti
Hallo Stefan,

so geht das nicht. Du kannst nicht einfach irgendeine Grafik in Deiner Tabelle ablegen. Mit dieser Art und Weise kann man kein Icon ablegen.

ICO-Dateien enthalten Symbole und stellen eine bestimmte Form von Dateiart dar. Sie sind der Regel 16x16, 32x32 oder 64x64 Bit groß. Wobei ich in der Neuzeit auch schon abweichende Größen verwendet hatte, das funktioniert jetzt auch.
Aber nicht so ein Leuchtturm....

Erstelle ein Image-Objekt und verlinke Deine gewünschte ICO-Datei. Am besten änderst Du einfach in der beigefügten Datei das von mir schon eingefügte Objekt Eigenschaften-Picture...
Es muss vom Typ Symbol sein, sonst kannst Du es m.E. nicht als Shortcut verwenden. ICO-Datei haben auch eine Transparent-Eigenschaft.

Wahrscheinlich gibt es jetzt ein Problem. Du hast keine passende ICO-Datei. Stimmt's?
Wenn ich das mache, erstelle ich mir über GIMP ICO-Formate aus PNG-, BMP- oder JPG-Bildern. So hatte ich es auch mit dem Freigericht-Wappen gemacht.

Du kannst es aber auch mal mit BMP (Bitmap) probieren. Scheint wohl doch zu gehen......

https://www.herber.de/bbs/user/165767.xlsm

Viele Erfolg noch.
Karl-Heinz
Anzeige
AW: ico-Datei mit VBA speichern und als Icon verwenden
02.01.2024 17:05:18
Stefan
Moin Karl-Heinz,

einfach nur perfekt....vielen herzlichen Dank....
ich musste ein wenig basteln....habs aber hingekriegt und es läuft genauso, wie ich das brauche....

eine Frage noch: hast du zufällig auch eine kleine Lösung, wie ich den Shortcut auf dem Desktop über VBA wieder löschen kann?

Gruß Stefan
AW: ico-Datei mit VBA speichern und als Icon verwenden
02.01.2024 17:56:02
volti
Hallo Stefan,

schön wenn es jetzt geht. Das freut mich.

Der Shortcut ist lediglich eine ganz normale Datei mit der Erweiterung lnk.

Sollte man also m.E. mit dem KILL-Befehl löschen können.

Die ICO-Datei befindet sich, wenn Du es so gemacht hast, wie ich es vorgeschlagen hatte, im TEMP-Verzeichnis. Kann man auch mit dem KILL-Befehl löschen. Aber die stört ja eigentlich auch nicht.

Code:


Sub LoescheLink() ' Lösche eine Shortcut-Datei With CreateObject("wscript.Shell").SpecialFolders If Dir$(.Item("Desktop") & "\Bilder.lnk") <> "" Then Kill .Item("Desktop") & "\Bilder.lnk" End If End With End Sub

_________________________
viele Grüße aus Freigericht 😊
Karl-Heinz
Anzeige
AW: ico-Datei mit VBA speichern und als Icon verwenden
02.01.2024 18:17:23
StefanDHH
Moin Karl-Heinz,

danke....alles SUPERTOP!!!!

ich musste ein wenig basteln....ich habe noch nie mit Bildern in Excel so gearbeitet...
ich habe das genauso gemacht, wie du es vorgeschlagen hattest....und es hat perfekt funktioniert :)

vielen Dank auch noch für den kleinen Lösch-Code....der läuft auch genau, wie ich das geplant hatte....

du hast mir da echt bei einem großen Problem geholfen :))))...jetzt kann ich die Programmierung zum Abschluß bringen....

vielen vielen Dank nochmals dafür.....

Alles Gute und hoffentlich bis zum nächsten Mal

Gruß Stefan
Anzeige
AW: ico-Datei mit VBA speichern und als Icon verwenden
02.01.2024 18:19:26
volti
Hier noch 'ne Variante. Etwas kürzer...
Sub LoescheLink()

On Error Resume Next
Kill "C:\Users\" & Environ("username") & "\Desktop\Bilder.lnk"
End Sub


Gruß KH
AW: ico-Datei mit VBA speichern und als Icon verwenden
31.12.2023 19:04:51
volti
Hallo Stefan,

für eine Linkdatei auf dem Desktop muss Du schon eine Ico-Datei parat haben. nur aus dem Picture lässt sich das m.E. nicht machen.

https://www.herber.de/bbs/user/165763.xlsb

Hier eine Möglichkeit, so eine Ico-Datei und eine Linkdatei aus einem IconElement in einer Tabelle zu erstellen und im TEMP-Verzeichnis zu speichern.

Code:


Sub LinkAnlegen() ' Legt eine Verknüpfung mit einem Icon aus dieser Datei auf dem Desktop an Dim sLinkFile As String, sFilename As String, oPic As Object, sWkB As String ' ggf.anpassen!!! sLinkFile = Environ("Temp") & "\Freigericht.ico" ' Ico-Dateiname sFilename = "Mein-Beispiel.lnk" ' Dateiname des Links Set oPic = Sheets("Tabelle1").Image2.Picture ' Tabelle, Image sWkB = ThisWorkbook.FullName ' Verknüpfte Datei With CreateObject("WScript.Shell") If Dir$(.SpecialFolders("Desktop") & "\" & sFilename) <> "" Then Exit Sub ' Nur ein mal machen End If With .CreateShortcut(.SpecialFolders("Desktop") & "\" & sFilename) .TargetPath = sWkB ' Verküpfte Datei ' .Arguments = "-c" ' .WorkingDirectory = "c:\" .WindowStyle = 3 ' 3=Maximized 7=Minimized 4=Normal ' Anzeigeform ' .hotkey = "ALT+CTRL+F" ' Hotkey kreieren SavePicture oPic, sLinkFile ' Image <anpassen> .IconLocation = sLinkFile ' Icon setzen .Save ' Link speichern End With End With End Sub

_________________________
viele Grüße aus Freigericht 😊
Karl-Heinz
Anzeige
AW: ico-Datei mit VBA speichern und als Icon verwenden
31.12.2023 13:18:12
Mullit
Hallo,

okidoki, wenn der Shortcut schon läuft, folgender Ansatz: speicher Dein ICO in einem ImageControl(ActiveX-Control), speicher dann auf dem Zielrechner das ICO-File mit Hilfe der .SavePicture Methode, und dann wieder über Wscript.Shell mit der .IconLocation-Eig. das Icon dem Shortcut zuweisen...

https://bettersolutions.com/vba/functions/savepicture-statement.htm
https://learn.microsoft.com/de-de/troubleshoot/windows-client/admin-development/create-desktop-shortcut-with-wsh

Gruß, Mullit
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige