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

Forumthread: Bilder in Zellen einlesen und fixieren

Bilder in Zellen einlesen und fixieren
Christina
Hallo,
in Spalte A ab A2 stehen Artikelnr, in Spalte E Bildnamen, die sich aus der Artikelnr & „.jpg“
gebildet werden. Die Bilder selbst sind im Ordner C:\Bilder gespeichert.
Nun sollen die Bilder in Spalte D ab D2 eingelesen werden und die Bilder der Zellgröße angepasst und von der Zellposition abhängig sein.
Wie geht man da am sinnvollsten vor?
Gruß
Christina Verena
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Bilder in Zellen einlesen und fixieren
20.11.2011 23:23:02
Josef

Hallo Christina Verena,
das geht z. B. so.
Sub importPictures()
  Dim objPic As Picture
  Dim rng As Range
  Dim strPath As String
  
  strPath = "E:\Bilder\Diverses\Test" 'Pfad - Anpassen!
  
  If Right(strPath, 1) <> "\" Then strPath = strPath & "\"
  
  With Sheets("Tabelle3") 'Tabellennname - Anpassen!
    For Each rng In Range("A2:A" & .Cells(.Rows.Count, 1).End(xlUp).Row)
      If Dir(strPath & rng & ".jpg", vbNormal) <> "" Then
        Set objPic = .Pictures.Insert(strPath & rng & ".jpg")
        With objPic
          .ShapeRange.LockAspectRatio = msoTrue
          .Placement = xlMoveAndSize
          .Top = rng.Top
          .Height = rng.Height
          .Left = rng.Offset(0, 3).Left
        End With
      End If
    Next
  End With
  
  Set objPic = Nothing
End Sub



« Gruß Sepp »

Anzeige
AW: Bilder in Zellen einlesen und fixieren
21.11.2011 09:27:50
Christina
Hallo Sepp,
das Programm funktioniert super. Tausend Dank für Deine perfekte Lösung.
2 Zeilen sind mir unklar:
.ShapeRange.LockAspectRatio = msoTrue 'Bildproportion erhalten
.Placement = xlMoveAndSize 'Platzierung bzw. Positionierung soll bewegt und in der Größe angepasst werden?
Ist das so wie ich mir das in den Kommentaren erkläre?
Einen schönen Tag.
Gruß
Christina Verena
Anzeige
AW: Bilder in Zellen einlesen und fixieren
21.11.2011 17:07:34
Josef

Hallo Christina Verena,
".ShapeRange.LockAspectRatio = msoTrue 'Bildproportion erhalten" - richtig das Seitenverhältnis bleibt fix.
".Placement = xlMoveAndSize 'Platzierung bzw. Positionierung soll bewegt und in der Größe angepasst werden?" - nicht ganz, das entspricht der Option "Von Zellposition und -größe abhängig".

« Gruß Sepp »

Anzeige
Danke
21.11.2011 17:24:22
Christina
Hallo Sepp,
ich danke Dir für die Richtigstellung meiner Interpretation.
Einen schönen Abend.
Gruß
Christina Verena
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Bilder in Zellen einlesen und fixieren


Schritt-für-Schritt-Anleitung

Um ein Bild in einer Zelle zu fixieren, kannst Du die folgenden Schritte ausführen:

  1. Vorbereitung: Stelle sicher, dass die Bilder im richtigen Ordner gespeichert sind (z. B. C:\Bilder). Die Bildnamen sollten den Artikelnr. entsprechen (z. B. 123.jpg).

  2. VBA-Editor öffnen:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
    • Erstelle ein neues Modul: Klicke auf Einfügen > Modul.
  3. Code einfügen: Kopiere den folgenden Code in das Modul:

    Sub importPictures()
        Dim objPic As Picture
        Dim rng As Range
        Dim strPath As String
    
        strPath = "C:\Bilder\" 'Pfad - Anpassen!
    
        If Right(strPath, 1) <> "\" Then strPath = strPath & "\"
    
        With Sheets("Tabelle1") 'Tabellenname - Anpassen!
            For Each rng In Range("A2:A" & .Cells(.Rows.Count, 1).End(xlUp).Row)
                If Dir(strPath & rng & ".jpg", vbNormal) <> "" Then
                    Set objPic = .Pictures.Insert(strPath & rng & ".jpg")
                    With objPic
                        .ShapeRange.LockAspectRatio = msoTrue
                        .Placement = xlMoveAndSize
                        .Top = rng.Top
                        .Height = rng.Height
                        .Left = rng.Offset(0, 3).Left
                    End With
                End If
            Next
        End With
    
        Set objPic = Nothing
    End Sub
  4. Anpassen: Ändere den Pfad und den Tabellennamen entsprechend Deinen Bedürfnissen.

  5. Ausführen: Schließe den VBA-Editor und führe das Makro über Entwicklertools > Makros aus.

Jetzt werden die Bilder in die Zellen eingefügt und entsprechend der Zellgröße fixiert.


Häufige Fehler und Lösungen

  • Fehler: "Datei nicht gefunden": Überprüfe den Pfad und die Dateinamen. Stelle sicher, dass die Bilddateien im angegebenen Ordner vorhanden sind.
  • Bilder erscheinen nicht: Achte darauf, dass die Bilder die richtige Dateiendung haben (z. B. .jpg).
  • Bilder sind nicht fixiert: Stelle sicher, dass die Zeile .Placement = xlMoveAndSize im Code vorhanden ist. Diese Zeile sorgt dafür, dass das Bild der Zellgröße folgt.

Alternative Methoden

Eine weitere Möglichkeit, Bilder in Excel zu fixieren, besteht darin, die Bilder manuell einzufügen:

  1. Bild einfügen: Gehe zu Einfügen > Bilder und wähle das Bild aus.
  2. Formatierung: Klicke mit der rechten Maustaste auf das Bild und wähle Größe und Eigenschaften.
  3. Fixierung: Wähle unter Eigenschaften die Option Von Zellposition und -größe abhängig.

Diese Methode ist jedoch weniger automatisiert und erfordert mehr manuellen Aufwand.


Praktische Beispiele

  1. Beispiel für das Fixieren: Angenommen, Deine Artikelnr. in Spalte A sind 001, 002 und die Bilder heißen 001.jpg, 002.jpg. Der VBA-Code oben wird die Bilder in Spalte D ab D2 einfügen und sie an die Zellgröße anpassen.

  2. Verwendung in Berichten: Du kannst diese Technik nutzen, um Produktbilder in einer Übersichtstabelle zu präsentieren, die automatisch aktualisiert wird, wenn Du die Artikelnr. änderst.


Tipps für Profis

  • Bilder in Hintergrund fixieren: Wenn Du ein Bild als Hintergrund verwenden möchtest, kannst Du die Option Bild in Hintergrund für die entsprechende Zelle aktivieren.
  • Batch-Verarbeitung: Wenn Du viele Bilder hast, die in Zellen fixiert werden sollen, ist die Verwendung von VBA die effizienteste Methode.
  • Formate nutzen: Nutze Excel-Formen, um Bilder in Zellen zu verankern, indem Du die Form mit dem Bild kombinierst.

FAQ: Häufige Fragen

1. Wie kann ich in Excel ein Bild in einer Zelle fixieren?
Du kannst ein Bild in einer Zelle fixieren, indem Du den VBA-Code nutzt, um das Bild entsprechend der Zellgröße anzupassen.

2. Kann ich mehrere Bilder gleichzeitig einfügen?
Ja, der VBA-Code ermöglicht es, mehrere Bilder gleichzeitig basierend auf den Artikelnr. in einer Spalte einzufügen.

3. Funktioniert das in jeder Excel-Version?
Die hier beschriebenen Schritte sollten in den meisten modernen Excel-Versionen (z. B. Excel 2016, 2019, und Office 365) funktionieren.

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