VBA OLEObjects.Add nach speichern der Datei wieder original
#1
Hallo,

und zwar habe ich folgendes Problem.

Ich füge Bilder als OLEObject ein und übergebe dabei ein anderes Icon und einen IconLabel Namen. EIngefügt im Beispiel als name Datei mit dem Ornder Symbol.
Nach dem speichern der Datei allerdings zeigt er das objekt so an also würde man es normal einfügen über das excel Menü.


Hier mein Code:

Code:
Sub Dateieinfuegen()
Dim Datei As String
Dim Dateiname As String
Dim objI As Object

'Datei öffnen Dialog
Datei = Application.GetOpenFilename

'Wenn Abbruch der Datei öffnen
On Error GoTo Finish

'Name des Objekts in Excel Zelle muss 40 breit und 30 hoch sein für Snap
Dateiname = "Datei"

'Objekt einfügen
Set objI = ActiveSheet.OLEObjects.Add(Filename:=Datei, _
            Link:=False, _
            DisplayAsIcon:=True, _
            IconFileName:="outlook.exe", _
            IconIndex:=1, _
            IconLabel:=Dateiname)

            objI.Left = ActiveCell.Left
            objI.Top = ActiveCell.Top
           
            objI.Height = ActiveCell.Height
            objI.Width = ActiveCell.Width
         

'Objekt Zellen Position & Größen Abhängig machen
objI.Placement = xlMoveAndSize


'Wenn Fehler dann beende Sub
Finish:
    Exit Sub
End Sub
Über Hilfe wäre ich sehr dankbar. Verstehe das überhaupt nicht warum das passiert.


Grüße René


Angehängte Dateien Thumbnail(s)
       
Antworten Top
#2
Hier eine Beispieldatei.

Mit dem Button geht der Fileexplorer auf um eine Datei anfügen zu können. Getestet in meinem Beispiel mit einer png Datei.
nach dem speichern der Datei ändert sich das Icon und der Name.


Angehängte Dateien
.xlsm   Mappe1.xlsm (Größe: 22,29 KB / Downloads: 1)
Antworten Top
#3
Hi,

wo hast Du denn die Eigenschaft  IconFileName her?
Schmeiß die Zeile            
Code:
IconFileName:="outlook.exe", _
 raus, und es sollte funktionieren...
Der sicherste Ansatz für einen Irrtum ist der Glaube, alles im Griff zu haben.
Nur, weil ich den Recorder bedienen kann, macht mich das noch lange nicht zum Musiker.

Ciao, Ralf

Antworten Top
#4
(24.08.2022, 12:25)Ralf A schrieb: wo hast Du denn die Eigenschaft  IconFileName her?
Vermutlich aus der OH zur OLEObjects.Add-Methode

@TE
Hilft Dir vermutlich nicht, aber wenn Du Link auf TRUE setzt, bleiben das Icon und das IconLabel erhalten. 
Offenbar setzt Excel beim Import ohne Link das Standard-Icon für den Dateityp - allerdings auch nicht bei allen Dateitypen - wäre ja sonst auch zu einfach. Warum auch immer...
Antworten Top
#5
Hallo Ralf,

das hatte ich auch schon versucht, dann macht er es ganz normal wie über das Menü einfügen er nimmt dann den Originalnamen der Datei.
Das wollte ich ja ändern.

https://docs.microsoft.com/de-de/office/...bjects.add

hier hatte ich die Referenz her. MIt Icon und Name hatte er es zumindest gemacht aber leider ist es beim speichern wieder weg.

@EarlFred
Das Icon wäre nicht schlilmm. Darf ruhig standard sein. Leider ändert er mich auch den Namen des Objekts auf den Originalen zurück.

Wollte eigentlich nur den Namen ändern.
Antworten Top
#6
(24.08.2022, 15:48)UltraTM schrieb: Wollte eigentlich nur den Namen ändern.
Die Änderung der Link-Eigenschaft tut bei mir genau das - der Name bleibt gleich. Aber richtig verlässlich scheint mir das nicht, habe auch nicht alle Möglichkeiten durchgetestet. 

Du kannst natürlich einen Behelfsweg gehen:
Füge Dein OLE-Object (egal wie es aussieht) auf einem versteckten Blatt ein und merke Dir den Namen.

Erstelle dann ein Steuerelement (z. B. Button), weise ihm das gewünschte Bild und Text zu und lass damit folgendem Code starten:
Code:
Dim objOLE As OLEObject
Set objOLE = Worksheets(...).OLEObjects("Object 1")
objOLE.Activate
Antworten Top
#7
Hi,

und danke für deine Lösungsansätze. Sieht wohl nach einem Bug aus.
Habe mal zum Test viele Bilder eingefügt auf die gleiche Art.
Lustig ist eine bleibt wie sie sein sollte :)

Der Rest leider nicht.


Angehängte Dateien Thumbnail(s)
   
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste