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

Bilddatei per Button öffnen

Forumthread: Bilddatei per Button öffnen

Bilddatei per Button öffnen
07.02.2019 20:41:59
Heinz
Hallo zusammen,
ich bräuchte hilfe.Es ist nur eine Kleinigkeit aber ich komme einfach nicht drauf. Und zwar möchte ich ein Bild per Button öffnen wenn der Bildname in Zelle A1 steht. Mit folgendem code bekomme ich das auch hin wenn der Pfad so Lautet C:\Users\Public\Pictures\Sample Pictures\Desert.jpg
Option Explicit
Private Declare

Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As _
Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal  _
lpDirectory As String, ByVal lpnShowCmd As Long) As Long

Sub suchen()
'Datei im Zielordner suchen Bildname ist Zelle A1
Dim Dateiname As String
Dim Suchbegriff As String
Dim Pfad As String
Pfad = "C:\Users\Public\Pictures\Sample Pictures\"
Suchbegriff = ActiveSheet.Range("A1").Value
Dateiname = Dir(Pfad & Suchbegriff & ".jpg")
If Dateiname  "" Then
'Öffnet die Datei
ShellExecute 0, "open", Pfad & Dateiname, "", "", 3
Else
MsgBox "Kein Bild vorhanden"
End If
End Sub
Nun mein Problem
Wie muss der Code lauten wenn der Pfad so ist:
C:\Users\Public\Pictures\Sample Pictures\Desert\Desert.jpg
Das Bild steckt nochmal in einem Ordner der genauso lautet wie der Bildname
Ich benötige sozusagen zusätzlich im Pfad Desert\
Ich wäre sehr Dankbar wenn mir jemand helfen könnte
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Bilddatei per Button öffnen
07.02.2019 23:26:32
Karl-Heinz
Hallo Heinz,
da brauchst Du doch nur den Pfad entsprechend ergänzen. Da ist es egal, ob der Unterpfad wie eine Datei heißt.
Sub suchen()
'Datei im Zielordner suchen Bildname ist Zelle A1
 Dim Dateiname As String
 Dim Suchbegriff As String
 Dim Pfad As String
 Pfad = "C:\Users\Public\Pictures\Sample Pictures\Desert\"
 Suchbegriff = ActiveSheet.Range("A1").Value
 Dateiname = Dir(Pfad & Suchbegriff & ".jpg")
 If Dateiname <> "" Then
'öffnet die Datei
  ShellExecute 0, "open", Pfad & Dateiname, "", "", 3
 Else
  MsgBox "Kein Bild vorhanden"
 End If
End Sub

viele Grüße
Karl-Heinz

Anzeige
AW: Bilddatei per Button öffnen
08.02.2019 06:26:36
Heinz
Hallo Karl Heinz,
erst mal vielen Dank für deine Antwort. Mein Unterpfad heißt allerdings immer genauso wie der Bildname.Wenn in A1 Blume steht ist dieses Bild auch im Ordner Blume usw.
ich bräuchte es denk ich so in etwa nur leider funtioniert es nicht.
Suchbegriff = ActiveSheet.Range("A1").Value & "\" & ActiveSheet.Range("A1").Value
Sorry wenn ich mich schlecht ausdedrückt habe.
Anzeige
AW: Bilddatei per Button öffnen
08.02.2019 08:47:24
Karl-Heinz
Moin Heinz,
ja, genauso könntest Du es machen. Allerdings enthält der Dateiname in "$A$1" ja auch das Suffix ".jpg" und der muss für den Unterpfad ja erst mal weg.
 Suchbegriff = ActiveSheet.Range("A1").Value
 Pfad = "C:\Users\Public\Pictures\Sample Pictures\" & Left(Suchbegriff, Len(Suchbegriff) - 4) & "\"

viele Grüße
KH
Anzeige
AW: Bilddatei per Button öffnen
08.02.2019 09:19:15
Heinz
Hallo Karl Heinz.
In der Zelle A1 steht aber nur der Name der Datei ohne .jpg
Ich muss mir quasi aus A1 (desert) den kompletten Pfad basteln.
Danke für deine Mühe
AW: Bilddatei per Button öffnen
08.02.2019 16:30:20
Nepumuk
Hallo Heinz,
teste mal:
Option Explicit

Private Declare Function ShellExecuteA Lib "shell32.dll" ( _
    ByVal hWnd As Long, _
    ByVal lpOperation As String, _
    ByVal lpFile As String, _
    ByVal lpParameters As String, _
    ByVal lpDirectory As String, _
    ByVal lpnShowCmd As Long) As Long

Private Const SW_SHOWMAXIMIZED As Long = 3&

Public Sub suchen()
    
    Const PICTURE_PATH As String = "C:\Users\Public\Pictures\Sample Pictures\"
    
    Dim strFileName As String, strPath As String
    
    With Cells(1, 1)
        
        strPath = PICTURE_PATH & .Text & "\"
        
        strFileName = Dir$(strPath & .Text & ".jpg")
        
    End With
    
    If strFileName <> vbNullString Then
        Call ShellExecuteA(Application.hWnd, "open", strPath & _
            strFileName, vbNullString, vbNullString, SW_SHOWMAXIMIZED)
    Else
        Call MsgBox("Kein Bild vorhanden", vbExclamation, "Hinweis")
    End If
End Sub

Gruß
Nepumuk
Anzeige
AW: Bilddatei per Button öffnen
08.02.2019 18:50:39
Heinz
Wow hat auf Anhieb funktioniert. Genau wie ich es mir vorgestellt habe. Ich schnall es zwar nicht ganz aber vielen vielen Dank dafür.
Liebe Grüße Heinz
;
Anzeige
Anzeige

Infobox / Tutorial

Bilddatei per Button in Excel öffnen


Schritt-für-Schritt-Anleitung

Um ein Bild per Button in Excel zu öffnen, während der Bildname in Zelle A1 steht, befolge die folgende Anleitung:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Erstelle ein neues Modul:
    • Rechtsklicke im Projektfenster auf „VBAProject (DeinWorkbook)“.
    • Wähle „Einfügen“ und dann „Modul“.
  3. Kopiere den folgenden VBA-Code in das Modul:
Option Explicit
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal lpnShowCmd As Long) As Long

Sub suchen()
    Dim Dateiname As String
    Dim Suchbegriff As String
    Dim Pfad As String
    Pfad = "C:\Users\Public\Pictures\Sample Pictures\"
    Suchbegriff = ActiveSheet.Range("A1").Value & "\" & ActiveSheet.Range("A1").Value
    Dateiname = Dir(Pfad & Suchbegriff & ".jpg")

    If Dateiname <> "" Then
        ShellExecute 0, "open", Pfad & Suchbegriff & "\" & Dateiname, "", "", 3
    Else
        MsgBox "Kein Bild vorhanden"
    End If
End Sub
  1. Schließe den VBA-Editor und kehre zu Excel zurück.
  2. Füge einen Button hinzu:
    • Gehe zu „Entwicklertools“ > „Einfügen“ > „Button (Formularsteuerelement)“.
    • Zeichne den Button auf dein Arbeitsblatt und weise ihn der suchen-Subroutine zu.
  3. Gib in Zelle A1 den Namen des Bildes (ohne die .jpg-Erweiterung) ein und klicke auf den Button.

Häufige Fehler und Lösungen

  • Fehler: „Kein Bild vorhanden“

    • Überprüfe, ob der Bildname in Zelle A1 korrekt ist und ob das Bild im entsprechenden Ordner vorhanden ist.
  • Fehler: Bild öffnet sich nicht

    • Stelle sicher, dass der Pfad im Code korrekt angegeben ist und die Berechtigungen für den Zugriff auf diesen Ordner vorhanden sind.
  • Hinweis: Unterordner gleich Bildname

    • Achte darauf, dass der Unterordner den gleichen Namen wie das Bild hat, da dies im Code berücksichtigt wird.

Alternative Methoden

Eine weitere Möglichkeit, ein Bild zu öffnen, besteht darin, die HYPERLINK-Funktion in Excel zu verwenden. Du kannst in einer Zelle einen Hyperlink auf das Bild setzen, der beim Klicken das Bild öffnet. Das Vorgehen ist wie folgt:

  1. Wähle eine Zelle aus, in der der Hyperlink erscheinen soll.
  2. Verwende die Formel:
=HYPERLINK("C:\Users\Public\Pictures\Sample Pictures\" & A1 & "\" & A1 & ".jpg", "Bild öffnen")

Diese Methode erfordert keine VBA-Kenntnisse, ist jedoch weniger flexibel.


Praktische Beispiele

Nehmen wir an, in Zelle A1 steht „Desert“. Der VBA-Code wird dann versuchen, das Bild „Desert.jpg“ aus dem Ordner „C:\Users\Public\Pictures\Sample Pictures\Desert\“ zu öffnen. Stelle sicher, dass das Bild sich in dem entsprechenden Unterordner befindet.


Tipps für Profis

  • Code optimieren: Du kannst den Code weiter optimieren, indem Du Fehlerbehandlungsroutinen hinzufügst, um eine bessere Benutzererfahrung zu gewährleisten.
  • Verwendung von Variablen: Stelle sicher, dass Du Variablen für häufig verwendete Werte wie den Bildpfad definierst, um die Wartbarkeit des Codes zu erhöhen.
  • Debugging: Nutze die Debugging-Tools im VBA-Editor, um Probleme schnell zu identifizieren.

FAQ: Häufige Fragen

1. Frage Wie kann ich den Code anpassen, um andere Bildformate zu unterstützen?

Antwort: Ersetze die ".jpg" in der Dir-Funktion durch das gewünschte Format, z.B. ".png".

2. Frage Kann ich mehrere Bilder gleichzeitig öffnen?

Antwort: Der aktuelle Code öffnet nur ein Bild. Um mehrere Bilder zu öffnen, müsstest Du den Code entsprechend anpassen, um eine Schleife zu implementieren, die mehrere Dateinamen verarbeitet.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige