Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Image1.Picture Bilddatei aus Verzeichnis

Forumthread: Image1.Picture Bilddatei aus Verzeichnis

Image1.Picture Bilddatei aus Verzeichnis
21.01.2016 13:13:39
DirkR
Hallo Excelgemeinde,
ich brauche mal eure Hilfe!
Ich habe folgendes Problem:
In einer UF lade ich Bilder in ein Image, wie in dem Beispiel:
Image1.Picture = LoadPicture(PathPic & "\0012345.jpg") oder auch
Image1.Picture = LoadPicture(PathPic & "\0123456.jpg")
Das klappt auch super. Allerdings gibt es beim abspeichern der Bilddateien im Verzeichnis eine Regel, die nicht immer so richtig eingehalten wird.
Die Bilddatei muss immer 7 stellen haben. Und genau da liegt das Problem. Eigentlich sollte unter "0012345" oder "0123456" die Bilddatei zu finden sein. Gelegentlich füllen die Kollegen aber die Stellen nicht mit den führenden Nullen auf.
Das führt dann regelmäßig zu einem Fehler beim laden der Bilddatei!!!
Hat jemand eine Idee?
Ich komme nicht drauf! :-(
...und bitte um Hilfe.
Danke schon mal im Voraus!
Gruß DirkR

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Nachtrag
21.01.2016 13:18:07
DirkR
Hallo,
habe noch ein Detail vergessen anzugeben.
So sieht der original-Code aus:
Private Sub GBNr()
Dim J As Integer, Number As String
Dim PathPic As String
Dim TB5_Text As String
'On Error GoTo Fehler
TB5_Text = TextBox5.Value
PathPic = GetCustProp(cstrPropertyName, cstrDefaultPath)
If Trim(TB5_Text)  "" Then
For J = 1 To Len(TB5_Text)
'MsgBox (Mid(TB5_Text, J, 1))
If IsNumeric(Mid(TB5_Text, J, 1)) Then Number = Number & Mid(TB5_Text, J, 1)
Next J
Me.Tag = "1"
If Len(Number)  "" Then
Image1.Picture = LoadPicture(PathPic & "\" & Image1.Tag & ".jpg")
Else
MsgBox "Die Bildsuche ist fehlgeschlagen! Bitte überprüfen sie den Bildpfad und" &  _
vbNewLine & "den Namen der Bilddatei!" & vbNewLine & _
"___________________________________________________________________________" &  _
vbNewLine & vbNewLine & _
"Bildpfad: " & vbNewLine & PathPic & vbNewLine & vbNewLine & _
"Dateiname: " & vbNewLine & Image1.Tag & ".jpg", vbCritical, " Achtung!"
TextBox5.Value = ""
TextBox5.SetFocus
GoTo Fehler
End If
Else
MsgBox "Ungültige Gef.-Buchnummer!", vbCritical, " Achtung"
TextBox5.Value = ""
TextBox5.SetFocus
End If
Me.Tag = ""
Else
GoTo Fehler
End If
Exit Sub
Fehler:
Image1.Picture = LoadPicture("")
Image1.Tag = ""
Label11.Caption = ""
End Sub

Gruß DirkR

Anzeige
AW: Image1.Picture Bilddatei aus Verzeichnis
21.01.2016 13:27:05
Rudi
Hallo,
dann würde ich nach erfolglosem Suchen noch nach der reinen Zahl suchen.
Schema:
sfile =dir(pathpic &"\" &format(nummer,"0000000") &".jpg")
if sfile="" then sFile =dir(pathpic &"\" &nummer &".jpg")
if sfile ="" then Msgbox Nummer &" nich da!"
Gruß
Rudi

Anzeige
AW: Image1.Picture Bilddatei aus Verzeichnis
21.01.2016 13:59:35
DirkR
Hallo Rudi,
vielen Dank. Genau das habe ich gebraucht.
Habe deinen Vorschlag dann so umgesetzt:
Private Sub GBNr()
Dim J As Integer
Dim PathPic As String, sfile As String, Nummer As String, TB5_Text As String
'On Error GoTo Fehler
TB5_Text = TextBox5.Value
PathPic = GetCustProp(cstrPropertyName, cstrDefaultPath)
If Trim(TB5_Text)  "" Then
For J = 1 To Len(TB5_Text)
'MsgBox (Mid(TB5_Text, J, 1))
If IsNumeric(Mid(TB5_Text, J, 1)) Then Nummer = Nummer & Mid(TB5_Text, J, 1)
Next J
Me.Tag = "1"
If Len(Nummer) 
So klappt es super.
Nochmal, vielen Dank.
Gruß DirkR
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Bilddateien in Excel VBA korrekt laden


Schritt-für-Schritt-Anleitung

  1. Vorbereitung: Stelle sicher, dass Du die benötigten Bilddateien im richtigen Verzeichnis hast. Die Bilddateien sollten im Format 0000000.jpg gespeichert sein, wobei die führenden Nullen nicht fehlen dürfen.

  2. VBA-Code einfügen: Öffne den VBA-Editor (Alt + F11) in Excel und füge den folgenden Code in das entsprechende UserForm ein:

    Private Sub GBNr()
        Dim J As Integer
        Dim PathPic As String, sfile As String, Nummer As String, TB5_Text As String
        TB5_Text = TextBox5.Value
        PathPic = GetCustProp(cstrPropertyName, cstrDefaultPath)
    
        If Trim(TB5_Text) <> "" Then
            For J = 1 To Len(TB5_Text)
                If IsNumeric(Mid(TB5_Text, J, 1)) Then Nummer = Nummer & Mid(TB5_Text, J, 1)
            Next J
    
            Me.Tag = "1"
            sfile = Dir(PathPic & "\" & Format(Nummer, "0000000") & ".jpg")
            If sfile = "" Then sfile = Dir(PathPic & "\" & Nummer & ".jpg")
    
            If sfile <> "" Then
                Image1.Picture = LoadPicture(PathPic & "\" & sfile)
            Else
                MsgBox "Die Bildsuche ist fehlgeschlagen! Bitte überprüfen sie den Bildpfad und den Namen der Bilddatei!", vbCritical, "Achtung"
                TextBox5.Value = ""
                TextBox5.SetFocus
            End If
        Else
            MsgBox "Ungültige Gef.-Buchnummer!", vbCritical, "Achtung"
            TextBox5.Value = ""
            TextBox5.SetFocus
        End If
        Me.Tag = ""
    End Sub
  3. Testen: Starte das UserForm und gib eine gültige Buchnummer ein, um sicherzustellen, dass das Bild korrekt geladen wird.


Häufige Fehler und Lösungen

  • Problem: Bilddatei nicht gefunden.

    • Lösung: Überprüfe den Pfad und den Dateinamen. Achte darauf, dass die Bilddateien im korrekten Format (mit führenden Nullen) gespeichert sind.
  • Problem: Fehler beim Laden des Bildes.

    • Lösung: Stelle sicher, dass der LoadPicture-Befehl korrekt verwendet wird und der Dateipfad korrekt ist.

Alternative Methoden

Falls Du eine andere Methode ausprobieren möchtest, könntest Du die ActiveX-Steuerelemente in Excel verwenden. Diese ermöglichen eine flexiblere Handhabung von Bildern:

  1. Füge ein Image-Steuerelement in Dein UserForm ein.
  2. Verwende den folgenden VBA-Code, um Bilder zu laden:

    Image1.Picture = LoadPicture("C:\Dein\Pfad\zum\Bild.jpg")

Praktische Beispiele

Angenommen, Du hast eine Bilddatei mit dem Namen 0123456.jpg im Verzeichnis C:\Bilder. Der folgende Code lädt dieses Bild:

Dim PathPic As String
PathPic = "C:\Bilder"
Image1.Picture = LoadPicture(PathPic & "\0123456.jpg")

Dieser Code setzt voraus, dass das Bild im richtigen Format vorhanden ist.


Tipps für Profis

  • Fehlerbehandlung: Implementiere eine robuste Fehlerbehandlung, um den Benutzer über mögliche Probleme bei der Bildsuche zu informieren.

  • Bildvorschau: Wenn Du mehrere Bilder anzeigen möchtest, kannst Du eine Schleife verwenden, um alle Bilder im Verzeichnis zu durchlaufen und in einer ListBox darzustellen.


FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass die Bilddateien immer die richtige Anzahl an Ziffern haben? Du kannst eine Funktion erstellen, die die Anzahl an Ziffern überprüft und gegebenenfalls führende Nullen hinzufügt.

2. Was passiert, wenn das Bild nicht gefunden wird? Der Code enthält eine Fehlerbehandlung, die eine entsprechende Meldung anzeigt, wenn die Bilddatei nicht gefunden werden kann. Achte darauf, die Bilddateien korrekt zu benennen und abzuspeichern.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige