Einfügen von Bilder via VBA aus eine Ordner auf dem PC
#1
Hallo miteinander

Ich habe wie es der Titel schon sagt eine Frage betreffend Bilder und Excel

Folgendes: Ich möchte, dass wenn ich in einer Zelle ein Land eingebe, er mir in einer anderen Zelle die dazugehörige Fahne einfügt. Die grösse der Fahne wurde schon im Format png angepasst. Die Bilder sind in einem Ordner auf dem PC.

Hätte mir jemand wenn möglich einen Ansatz wie ich mich an den Code wagen müsste?

Ist das überhaupt möglich?

Gruss Matteo
Top
#2
Hallo

das kann z.B. auf diese Weise funktionieren

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
   Dim strPfad As String
   strPfad = "D:\Test\" & Range("E5") & ".gif"
   OLEObjects("image1").Object.Picture = LoadPicture(strPfad)
End Sub

ich habe die Bilddateien als Gif in einem Ordner, namens "Test", auf Laufwerk D liegen
in Zelle E5 wird ein Name eingegeben und in einem Image1 wird dann das Bild angezeigt

MfG Tom
Top
#3
Danke dir vilemals für den Ansatz.

Das OLEObjects kenne ich jetzt überhaupt nicht. Ich habe es in meine Code eingefügt und ich erhalte eine Fehlermeldung (Siehe Anhang).
Was gibt es betreffend dem OLEObjects noch zu beachten? Habe im Internet nichts passendes gefunden.

Gruss Matteo


Angehängte Dateien Thumbnail(s)
   
Top
#4
Hallo

willst du das Bild in eine Zelle einfügen?

dann vielleicht auf diese Weise

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
   Dim strPfad As String
   Dim pic As Picture
   strPfad = "D:\Test\" & Range("E5") & ".gif"
   If Dir(strPfad) = "" Then Exit Sub
   Set pic = ActiveSheet.Pictures.Insert(strPfad)
   
   With ActiveSheet.Range("F5")
   ' Abstand links und oben
       pic.Left = .Left
       pic.Top = .Top
   End With
End Sub
die Eingabezelle und die Zelle für das Bild usw. anpassen
MfG Tom
Top
#5
Hallo Matteo
Vielleicht hilft Dir dieser getestete Ansatz.
Drehfeld in der Zelle A4 mit den Ländernamen. Fahnen gespeichert unter Ländernamen.png
Fahne in C4. Inhalt in C4 bei jeder neuen Auswahl gelöscht.
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim strFahne As String
    Application.ScreenUpdating = False
    If Target = Range("A4") Then
        strFahne = Target
        Range("C4").Select
        ActiveSheet.Pictures.Delete
        ActiveSheet.Pictures.Insert ("C:\[Dein Pfad]" & strFahne & ".png")
        Range("A4").Select
    End If
    Application.ScreenUpdating = True
End Sub
Gruss
Top
#6
@ Crazy Tom: Danke genau das ware die Idee jedoch zeigt er mir bei deinem Code nichts an

@ Helvetier: Danke dir Bei dir leider das gleiche Problem. Weiss aber nicht wieso es kommt auch keine Fehlermeldung.

Muss mal weiter probieren. Melde mich sonst nochmals.
Top
#7
Hallo

denke daran dass das Bild auch genau so heißt wie du es in die Zelle schreibst....
natürlich ohne die Endung png oder Gif oder was auch immer

MfG Tom
Top
#8
Hallo Matteo
Hast denn das Makro im VBAeditor auch in der richtigen Tabelle eingebaut (und nicht in einem Modul)?
Top
#9
Also Name stimmen überein und der Code wurde so eingesetzt, dass er beim drücken eines CommandButton ausgeführt wird.
Top
#10
(18.08.2017, 11:56)Primo Centurio schrieb: ...dass er beim drücken eines CommandButton ausgeführt wird.

Da dürfte der Hund begraben sein: Ohne entsprechende Anpassung läuft da nichts! Poste doch mal was Deinen code.
Top


Gehe zu:


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