Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Bild über Pfad im Image anzeigen

Forumthread: Bild über Pfad im Image anzeigen

Bild über Pfad im Image anzeigen
04.07.2004 11:55:10
Reservist
Hallo,
habe gestern schon mal das Thema angefragt - ohne Erfolg.
War meine Schuld - Schlecht ausgedrückt ...
Neuer Versuch:
In Zelle "O16" steht ein Pfad zu Bildern in einem Unterordner
z.B. "..\RB\CNS001.jpg"
Dieser Pfad ändert sich durch WENN-Formel, abhängig von der
Konstulation verschiedener Auswahlfelder.
Sobald der Pfad wechselt - muss natürlich auch das Bild wechseln.
Folgende Bilder stehen zur Wahl:
CNS001 - CNS007.jpg
ALU001 - ALU007.jpg
STAHL001 - STAHL005.jpg
Habe lange in Recherche gesucht. Komme aber nicht zurecht.
Ausnahme ein schönes Beispiel von Hajo:
"https://www.herber.de/forum/archiv/36to40/t38619.htm"
So schön soll`s funktionieren, nur sind es bei mir nicht 2 wechselnde
Bilder abhängig von einem Kriterium, sondern z.Z. 19. Es wäre also Klasse, wenn im Image stets das zum Pfad gehörige Bild angezeigt wird.
Diese Funktion ist für mich wichtig. Wäre toll wenn jemand helfen kann.
MfG aus Leipzig
Thorsten
Anzeige
AW: Bild über Pfad im Image anzeigen
Reinhard
Hi Thorsten,
hab mal das Beispiel von Hajo abgewandelt, ungetestet:
Erzeuge mit der Steuerelemente-toolbox ein Bil auf deiner Tabelle
und füge in VBA in deine Arbeitsmappe und deine Tabelle folgenden Code ein

Private Sub Worksheet_Activate()
If Range("O16") <>"" Then
Image1.Picture = LoadPicture(thisworkbook.path & Range("O16"))
End If
End Sub


Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Address <> "$O$16" Then exit sub
If Range("O16") <>"" Then
Image1.Picture = LoadPicture(thisworkbook.path & Range("O16"))
End If
End Sub

Anzeige
AW: Bild über Pfad im Image anzeigen
Reservist
Hallo Reinhard,
ersteinmal Danke für Antwort.
Leider wechselt das Bild nicht.
Gruß Thorsten
AW: Bild über Pfad im Image anzeigen
Reservist
Hallo Reinhard,
noch vergessen:
Der vollständige Pfad ist z.B.
"D:\Regale\RB\CNS001.jpg"
Die Exeldatei liegt in D:\Regale
Der Überordner muss aber veränderbar sein.
deshalb steht in meiner Zelle "..\RB\CNS001.jpg"
Ist diese Pfadangabe mit .. erstmal richtig?
Gruß Thorsten
Anzeige
AW: Bild über Pfad im Image anzeigen
04.07.2004 12:27:00
Annett
Hallo Thorsten
Der alte Beitrag hätte auch als offen gekennzeichnet werden.
Der Link geht nicht.Hast Du mal auf Hajo's Seite geschaut. Ich glaube er hatte da auch was vorgestellt für mehr Bilder.
Gruß Annett
Anzeige
AW: Bild über Pfad im Image anzeigen
Reservist
Hallo Annett,
danke für Hinweis, schau ich mir an.
Gruß Thorsten
Schade - komme nicht weiter - o.T.
Reservist
o.T.
Anzeige
AW: Bild über Pfad im Image anzeigen
Reinhard
Hi Thorsten,
siehe mal https://www.herber.de/bbs/user/8077.xls
der Code der dies ermöglicht steht in "DieseArbeitsmappe" im VB-Editor (Alt+F11).
Gruss
Reinhard
AW: Bild über Pfad im Image anzeigen
Reservist
Hallo Reinhard,
danke für neue Hilfe. Schau ich mir sofort an.
Dein erster Code (Abwandlung von Hajos Code)
funktioniert doch einwandfrei. Aber leider nur
bei direkter Eingabe in die Zelle. Der Code merkt
praktisch nicht, wenn sich der Pfad durch die
WENN-Funktion ändert.
Zuständig sind diese 3 Auswahlfeldern
"C6" "C35" "R35"
Im Code müsste also vermerkt sein, wenn eine
dieser 3 Zellen aktiviert wird, ist der Pfad zu
überprüfen.
Gruß Thorsten
Anzeige
Dass "isses"
Reinhard
Hallo Reinhard,
funktioniert prima - Tausend Dank.
Wie kann ich das nur gut machen?
Gruß Thorsten
Sorry - hab` wohl unsere Namen vertauscht
Reservist
o.T.
;
Anzeige
Anzeige

Infobox / Tutorial

Bild über Pfad im Image anzeigen


Schritt-für-Schritt-Anleitung

  1. Öffne die Excel-Datei und gehe zu dem Arbeitsblatt, in dem du das Bild anzeigen möchtest.

  2. Füge ein Steuerelement für das Bild hinzu:

    • Gehe zu Entwicklertools > Einfügen > Bild.
    • Platziere das Bild auf deinem Arbeitsblatt.
  3. Öffne den VBA-Editor:

    • Drücke Alt + F11.
  4. Füge den folgenden Code in das entsprechende Arbeitsblatt ein:

    Private Sub Worksheet_Change(ByVal Target As Excel.Range)
       If Not Intersect(Target, Me.Range("C6,C35,R35")) Is Nothing Then
           If Range("O16") <> "" Then
               Image1.Picture = LoadPicture(ThisWorkbook.Path & Range("O16"))
           End If
       End If
    End Sub
  5. Ändere den Pfad in Zelle O16 so, dass er auf das gewünschte Bild verweist, z.B. ..\RB\CNS001.jpg.

  6. Teste die Funktion: Ändere eine der Zellen C6, C35 oder R35 und überprüfe, ob das Bild im Steuerelement aktualisiert wird.


Häufige Fehler und Lösungen

  • Bild wird nicht aktualisiert: Stelle sicher, dass der Pfad in O16 korrekt ist und auf ein existierendes Bild verweist. Überprüfe auch, ob die Steuerelemente korrekt hinzugefügt wurden.
  • Fehlermeldungen in VBA: Achte darauf, dass die Zellen C6, C35 und R35 ordnungsgemäß referenziert sind. Die Intersect-Funktion sollte sicherstellen, dass der Code nur ausgeführt wird, wenn sich eine dieser Zellen ändert.
  • Falscher Pfad: Wenn der Pfad mit .. beginnt, überprüfe, ob die Excel-Datei im richtigen Verzeichnis liegt. Ein relativer Pfad kann manchmal problematisch sein, also teste auch absolute Pfade.

Alternative Methoden

  • Verwendung von Formeln: Eine Formel in Excel kann nicht direkt Bilder anzeigen, aber du könntest eine Kombination aus VBA und Formeln verwenden, um den Pfad dynamisch zu ändern.
  • PowerPoint Integration: Wenn du eine Präsentation machst, kannst du Excel-Daten in PowerPoint verwenden, um Bilder basierend auf Excel-Pfaden anzuzeigen.

Praktische Beispiele

Angenommen, du möchtest ein Bild für jede Auswahl in den Zellen C6, C35 oder R35 anzeigen. Hier ist ein Beispiel für die Zelle O16:

  • Inhalt von O16: ..\RB\CNS002.jpg
  • Wenn du in C6 den Wert 1 wählst, ändert sich der Pfad in O16 zu ..\RB\CNS003.jpg und das Bild wird aktualisiert.

Tipps für Profis

  • Fehlerbehandlung: Füge eine Fehlerbehandlung in deinen VBA-Code ein, um sicherzustellen, dass das Programm nicht abstürzt, wenn ein Bild nicht gefunden wird.

    On Error Resume Next
    Image1.Picture = LoadPicture(ThisWorkbook.Path & Range("O16"))
    If Err.Number <> 0 Then
      MsgBox "Bild nicht gefunden!"
      Err.Clear
    End If
  • Benutze benannte Bereiche: Statt fester Zellreferenzen kannst du benannte Bereiche verwenden, um deinen Code flexibler zu gestalten.


FAQ: Häufige Fragen

1. Wie kann ich mehrere Bilder anzeigen?
Du kannst die Logik im VBA-Code erweitern, um unterschiedliche Bilder basierend auf den Werten in mehreren Zellen anzuzeigen.

2. Funktioniert das auch in Excel Online?
Leider wird VBA in Excel Online nicht unterstützt. Du musst die Desktop-Version verwenden.

3. Was mache ich, wenn das Bild nicht angezeigt wird?
Überprüfe den Pfad in O16 auf Richtigkeit und stelle sicher, dass das Bild an diesem Ort existiert.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige