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

Forumthread: Bilder aus einem Ordner auslesen

Bilder aus einem Ordner auslesen
RR
Hallo zusammen,
Bin neu hier und habe mal eine Frage an die
Profis über VBA
Folgendes Problem.
Besteht die möglichkeit das wenn ich einen Commandbutton drücke (oder beim öffnen der Tabelle) das eine Userform oder soetwas ähnliches aufgeht wo ich dann den Ordner aussuchen kann sprich der Pfad variiert und das anschliessend der Ordnerinhalt sprich Bilder .JPG ausgelesen werden .Die sollten dann zb ab B4 das erste Bild das zweite dann B5 usw. usw eingefügt werden bis alle Bilder geladen sind sprich das die Bilder in der Tabelle alle gleich gross ca.5x5 cm sind und das sich die Zeile dementsprechend anpasst von der grösse .Wenn das schon ginge wäre super.
Dann noch eine Zusatzfrage:
Besteht weiterhin die möglichkeit das automatisch (nicht erst jedem Bild ein Makro zuordnen muss) wenn ich ein Bild anklicke das es etwas grösser wird wie zb. bei Bild bei Klick
Dieses ist bestimmt nicht so einfach zu lösen da ich die letzten zwei Tage schon wie zum Teufel gesucht habe .Habe zwar so ein paar Ansätze gefunden aber da mein VBA nicht so gut ist hoffe ich das ihr mir helfen könnt
Anzeige
AW: Bilder aus einem Ordner auslesen
07.10.2009 16:28:26
eres
Hallo RR oder wie auch immer,
vermutest Du, dass Du die Antwortwahrscheinlichkeit erhöhst, wenn Du exakt die gleiche Frage mehrfach täglich stellst ?
Gruß
erwin
AW: Bilder aus einem Ordner auslesen
07.10.2009 16:34:34
RR
Hallo Erwin,
Nein das wollte ich damit nicht bezwecken aber ich habe gedacht das die Überschrift vielleicht nicht verständlich genug war und wie schon erwähnt bin ich hier neu und ich wusste noch nicht wie man damit umzugehen hat sprich ob man die Überschrift im nachhinein noch ändern kann
RR
Anzeige
AW: Hinweis
07.10.2009 16:54:34
Reiner
Hallo Rudi,
Danke für deine Info ,Vielleicht weiss ja einer noch Rat
Gruß
Reiner
dann Frage offen lassen. oT
07.10.2009 18:45:37
Wenn
oT
Anzeige
AW: dann Frage offen lassen. oT
07.10.2009 20:19:59
Wolfgang
Hallo
Hier mal ein Tipp wie ich das gemacht habe
In einem Sheet (Worksheets("BildDatei"))
habe ich den Dateinamen mit Ordner gelistet
A B
1 D:\TEMP\
2 DSC_0097.JPG D:\TEMP\DSC_0097.JPG
im activen Arbeitsblatt alle Bilder geöffnet und die Größe angepasst
vielleicht hilt Dir das weiter
anbei das kleine script
gruß wolfgang
Sub BilderDrucken()
Dim k, n As Variant
Dim b As Object
Dim Datei1, Datei2, Datei3 As String
Set b = Worksheets("BildDatei")
k = 2
On Error Resume Next
For i = 2 To b.Cells(65536, 2).End(xlUp).Row
Datei1 = b.Cells(i, 2)
Datei2 = b.Cells(i + 1, 2)
Datei3 = b.Cells(i + 2, 2)
ActiveSheet.Cells(k, 1).Select
With ActiveSheet.Pictures
'.Delete
.Insert(Datei1).Select
With Selection.ShapeRange
.LockAspectRatio = msoTrue
.Height = 90
End With
End With
ActiveCell.Offset(7, 0) = Right(Datei1, 12)
ActiveSheet.Cells(k, 2).Select
With ActiveSheet.Pictures
.Insert(Datei2).Select
With Selection.ShapeRange
.LockAspectRatio = msoTrue
.Height = 90
End With
End With
ActiveCell.Offset(7, 0) = Right(Datei2, 12)
ActiveSheet.Cells(k, 3).Select
With ActiveSheet.Pictures
.Insert(Datei3).Select
With Selection.ShapeRange
.LockAspectRatio = msoTrue
.Height = 90
End With
End With
ActiveCell.Offset(7, 0) = Right(Datei3, 12)
ActiveCell.Offset(8, -2).Select
k = ActiveCell.Row
i = i + 2
Next i
End Sub

Anzeige
mach aus *.gif noch *.jpg im Code oT.
08.10.2009 14:47:54
Tino
AW: Bilder aus einem Ordner auslesen
08.10.2009 22:38:49
Reiner
Hallo Tino und Wolfgang,
Vielen Dank für eure Hilfe aber mir wurde schon im ersten Thread geholfen (bin ja neu hier) siehe Ordnerinhalt über Userform auslesen (Bilder)
Werde aber eure Versionen auch noch mal testen
Gruß
Reiner
Anzeige
AW: Bilder aus einem Ordner auslesen
08.10.2009 23:01:44
Reiner
Hallo Tino,
Leider funkioniert dein Code bei mir nicht obwohl ich den gif gegen jpg getauscht habe (habe nur ein gif gefunden das ich dann in jpg umbenannt habe).Das Auswahlfenster geht auf und ich kann den Ordner auswählen aber es werden keine Bilder geladen.Aber wie schon gesagt habe ich ja schon eine lösung bekommen.Trotzdem noch einmal ein Danke schön für deine bemühung
Hallo Wolfgang,
Dein Code ist mir ein wenig zu kompliziert weil ich ja eigentlich den ganzen Ordner auf einmal auslesen wollte und nicht jedes Bild einzeln erst aufführen und dann erst laden .Aber troptzdem auch hier nochmal ein Dankeschön für deine Bemühungen.
Gruß
Reiner
Anzeige
ja war noch ein Fehler enthalten.
09.10.2009 14:59:25
Tino
Hallo,
mach aus der Zeile
sFile = Dir(sFile & "*.jpg") bzw. sFile = Dir(sFile & "*.gif")
diese
sFile = Dir(strPfad & "*.jpg")

Gruß Tino
AW: Bilder aus einem Ordner auslesen
09.10.2009 20:34:59
Reiner
Hallo Tino,
Jetzt funkioniert dein Code auch bei mir aber die Bilder werden bei diesem Code in Spalte A und Zeile 2 dann A3 ,A4 usw. abgelegt .Könnte man die Spalte ändern in zb Spalte B und dann ab Zeile 4 das Bilder sprich in Spalte B abgelegt werden
Gruß
Reiner
Anzeige
AW: Bilder aus einem Ordner auslesen
09.10.2009 20:43:01
Tino
Hallo,
geht auch,
mach aus der Zeile
With Tabelle1.Cells(A + 2, 1)
diese
With Tabelle1.Cells(A + 4, 2)
Diese findest Du im Modul 'Modul_Bilder_Laden' in der Sub 'Sub ErstelleBilder...'
Gruß Tino
AW: Bilder aus einem Ordner auslesen
09.10.2009 21:32:24
Reiner
Hallo Tino,
Kann nur sagen Perfekt Danke schön nochmals für deine Hilfe
Gruß
Reiner
Anzeige
;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Bilder aus einem Ordner auslesen in Excel


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und erstelle ein neues Arbeitsblatt.
  2. Füge einen CommandButton über die Entwicklertools ein.
  3. Erstelle eine Userform, die beim Klicken auf den CommandButton angezeigt wird. In dieser Userform solltest Du eine Schaltfläche zum Auswählen des Ordners haben.
  4. Nutze VBA, um den Inhalt des ausgewählten Ordners auszulesen. Hier ist ein Beispielcode:
Sub BilderAusOrdner()
    Dim fd As FileDialog
    Dim strPfad As String
    Dim sFile As String
    Dim r As Integer

    ' Datei-Dialog zum Ordner auswählen
    Set fd = Application.FileDialog(msoFileDialogFolderPicker)
    If fd.Show = -1 Then
        strPfad = fd.SelectedItems(1) & "\"
    Else
        Exit Sub
    End If

    ' Bilder aus dem Ordner auslesen
    sFile = Dir(strPfad & "*.jpg")
    r = 4 ' Startzeile

    Do While sFile <> ""
        ActiveSheet.Pictures.Insert(strPfad & sFile).Select
        With Selection.ShapeRange
            .LockAspectRatio = msoTrue
            .Height = 90 ' Bildhöhe anpassen
        End With
        ActiveSheet.Cells(r, 2).Value = sFile ' Dateinamen einfügen
        r = r + 1
        sFile = Dir
    Loop
End Sub
  1. Passe den Code an, um die Bilder in der gewünschten Größe und Position einzufügen, beispielsweise in der Spalte B ab Zeile 4.

Häufige Fehler und Lösungen

  • Fehler: Bilder werden nicht geladen.

    • Stelle sicher, dass der Dateipfad korrekt ist und die Bilder im richtigen Format (z.B. JPG) vorliegen. Prüfe auch die Berechtigungen des Ordners.
  • Fehler: Bilder erscheinen nicht in der richtigen Größe.

    • Achte darauf, dass die .Height-Eigenschaft im Code korrekt gesetzt ist. Probiere verschiedene Werte aus, um die gewünschte Größe zu erreichen.

Alternative Methoden

  • Verwenden von Excel-VBA zur Automatisierung: Du kannst auch eine Schleife verwenden, um die Bilder aus dem Ordner auszulesen und automatisiert in die Tabelle einzufügen. Dies ist besonders nützlich, wenn Du regelmäßig den Inhalt eines Bildordners auswerten musst.

  • Excel-Verzeichnis auslesen: Nutze den Befehl Dir in einer Schleife, um alle Dateinamen in einem bestimmten Verzeichnis zu sammeln. Dies kann auch für andere Dateitypen als Bilder angepasst werden.


Praktische Beispiele

Hier ist ein Beispiel, wie Du den Code anpassen kannst, um auch GIFs zu laden:

sFile = Dir(strPfad & "*.gif")

Wenn Du mehrere Bildformate wie JPG und GIF gleichzeitig laden möchtest, kannst Du eine erweiterte Schleife verwenden, die beide Dateiformate berücksichtigt.


Tipps für Profis

  • Verwende Error-Handling: Implementiere On Error Resume Next, um sicherzustellen, dass Dein Code nicht bei einem Fehler stoppt. Dies ist besonders wichtig beim Arbeiten mit externen Dateien und Verzeichnissen.

  • Gestalte Deine Userform ansprechend: Füge zusätzliche Steuerelemente hinzu, um die Benutzererfahrung zu verbessern. Dies könnte z.B. eine Fortschrittsanzeige sein, während die Bilder geladen werden.


FAQ: Häufige Fragen

1. Wie kann ich die Bilder in einer bestimmten Größe einfügen? Du kannst die .Height und .Width Eigenschaften der ShapeRange im VBA-Code anpassen, um die Größe der Bilder zu verändern.

2. Ist es möglich, die Bilder beim Klicken zu vergrößern? Ja, Du kannst ein zusätzliches Makro erstellen, das die Größe des Bildes ändert, wenn es angeklickt wird. Dies erfordert jedoch eine etwas komplexere Implementierung.

3. Welche Excel-Version benötige ich für diese Funktionen? Die beschriebenen VBA-Funktionen sind in den meisten modernen Excel-Versionen verfügbar, einschließlich Excel 2010 und höher.

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