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

Forumthread: Bilder automatisch einfügen/verkleinern

Bilder automatisch einfügen/verkleinern
17.06.2017 20:38:42
Angela
Hallo Zusammen, ich bin in VBA ein ziemlicher Anfänger haber mir aber folgenden Code für mein Problem zusammen gesuch. Was auch ganz gut funktioniert.
Aber ich bekomme die größe der Bilder einfach nicht hin und bräuchte da mal eine Erklärung. Die Bilder sollten eigentich in der Größe der Spalte/Zelle sein.
Also die Spalte soll sich nicht vergrößern wenn das Bild eingefügt wird.
War das jetzt verständlich erklärt?
Sub Bilder_einfügen()
Dim Pfad As String
Dim strDatnam As String
Dim Wiederholungen As Long
Dim Bildbreite As Single
Dim Bildhöhe As Single
Dim meinBild
Dim maxSpaltenbreite As Single
Dim Bild As Shape
Dim Zelle As Range
'Bildschirmaktualisierung ausschalten:
Application.ScreenUpdating = False
'Pfad anpassen
Pfad = "C:\Users\PC\Desktop\AM-Web-Office\Bilder\"
'Spalte D ab Zeile 2 durchlaufen
For Wiederholungen = 2 To ActiveSheet.Cells(Rows.Count, 2).End(xlUp).Row
'Namen der Bilder stehen in Spalte B - ohne Endung; Einlesen in Variable mit Pfadangaben
strDatnam = Pfad & Cells(Wiederholungen, 4).Value & ".jpg"
'Prüfen, ob Bilddatei im Verzeichnis existiert
If Dir(strDatnam)  "" Then
'falls ja, dann Bildhöhe und -breite einlesen
Set meinBild = LoadPicture(strDatnam)
Bildbreite = meinBild.Width
Bildhoehe = meinBild.Height
'Bild einfügen, 9 cm hoch - 1 cm = 28,35 pt - und Breite entsprechend skaliert
ActiveSheet.Shapes.AddPicture strDatnam, msoFalse, msoTrue, Cells(Wiederholungen, 7).Left,  _
Cells(Wiederholungen, 7).Top, 141.75 * Bildbreite / Bildhoehe, 141.75
'maximale Spaltenbreite ermitteln, für die Anpassung der Spaltenbreite
If maxSpaltenbreite 

Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bilder automatisch einfügen/verkleinern
18.06.2017 11:24:59
Hajo_Zi
ich hätte mal vermutet
' für 141.75 * Bildbreite / Bildhoehe, 141.75
Cells(Wiederholungen, 7).Width , Cells(Wiederholungen, 7).Height

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Bilder automatisch einfügen und verkleinern in Excel


Schritt-für-Schritt-Anleitung

Um Bilder in Excel automatisch einzufügen und zu skalieren, kannst Du den folgenden VBA-Code verwenden. Dieser Code sorgt dafür, dass die Bilder in der Größe der Zelle eingefügt werden, ohne dass die Spaltenbreite verändert wird.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Erstelle ein neues Modul über Einfügen > Modul.
  3. Kopiere den folgenden Code in das Modul:
Sub Bilder_einfügen()
    Dim Pfad As String
    Dim strDatnam As String
    Dim Wiederholungen As Long
    Dim Bildbreite As Single
    Dim Bildhöhe As Single
    Dim meinBild
    Dim Bild As Shape
    Dim Zelle As Range

    ' Bildschirmaktualisierung ausschalten:
    Application.ScreenUpdating = False
    ' Pfad anpassen
    Pfad = "C:\Users\PC\Desktop\AM-Web-Office\Bilder\"
    ' Spalte D ab Zeile 2 durchlaufen
    For Wiederholungen = 2 To ActiveSheet.Cells(Rows.Count, 2).End(xlUp).Row
        ' Namen der Bilder stehen in Spalte B - ohne Endung
        strDatnam = Pfad & Cells(Wiederholungen, 4).Value & ".jpg"
        ' Prüfen, ob Bilddatei im Verzeichnis existiert
        If Dir(strDatnam) <> "" Then
            ' Bildhöhe und -breite einlesen
            Set meinBild = LoadPicture(strDatnam)
            Bildbreite = meinBild.Width
            Bildhöhe = meinBild.Height
            ' Bild einfügen und an die Zelle anpassen
            Set Zelle = Cells(Wiederholungen, 7)
            Set Bild = ActiveSheet.Shapes.AddPicture(strDatnam, msoFalse, msoTrue, Zelle.Left, Zelle.Top, Zelle.Width, Zelle.Height)
            ' Bild skalieren
            Bild.LockAspectRatio = msoFalse
            Bild.Width = Zelle.Width
            Bild.Height = Zelle.Height
        End If
    Next Wiederholungen
    Application.ScreenUpdating = True
End Sub
  1. Passe den Pfad zu Deinen Bilddateien an.
  2. Führe den Code durch F5 aus.

Das Bild wird nun in der Zelle eingefügt und entsprechend skaliert.


Häufige Fehler und Lösungen

  • Bild wird nicht angezeigt: Überprüfe den angegebenen Pfad und die Dateinamen in Spalte B. Stelle sicher, dass die Bilder im richtigen Format (z.B. JPG) vorliegen.

  • Bildgröße stimmt nicht: Achte darauf, dass die Zellen, in die die Bilder eingefügt werden, bereits die gewünschte Größe haben. Du kannst die Höhe und Breite der Zellen manuell anpassen.

  • Fehlermeldung bei der Ausführung des Codes: Stelle sicher, dass Du den richtigen Excel-Schutzmodus deaktiviert hast, um VBA auszuführen.


Alternative Methoden

  1. Excel-Funktion „Einfügen“: Du kannst Bilder auch manuell über Einfügen > Bilder in Excel einfügen. Danach kannst Du die Bilder manuell anpassen und skalieren.

  2. Power Query: Wenn Du eine große Anzahl von Bildern hast, kannst Du auch Power Query verwenden, um Bilder in Deine Excel-Daten zu integrieren und sie anschließend zu skalieren.


Praktische Beispiele

  • Verwende den VBA-Code, um Bilder für ein Projekt oder ein Portfolio in ein Excel-Arbeitsblatt einzufügen. So hast Du alle Bilder in einer Tabelle und kannst sie leicht verwalten.

  • Der Code kann auch modifiziert werden, um Bilder in die Kopfzeile eines Excel-Dokuments einzufügen. Das ist nützlich, wenn Du ein Logo oder ein spezifisches Bild in der Kopfzeile benötigst.


Tipps für Profis

  • Wenn Du viele Bilder in ein Arbeitsblatt einfügen möchtest, solltest Du darauf achten, die Excel-Arbeitsblattgröße zu optimieren, um die Ladezeiten zu verbessern.

  • Um die Bilder automatisch zu verkleinern, kannst Du die LockAspectRatio-Eigenschaft nutzen, um das Seitenverhältnis einzuhalten.

  • Verwende die Application.ScreenUpdating = False-Anweisung, um die Aktualisierung des Bildschirms während der Ausführung des Codes auszuschalten. Das verbessert die Performance.


FAQ: Häufige Fragen

1. Wie kann ich die Größe der JPG-Dateien in Excel verkleinern?
Du kannst die Größe der Bilder vor dem Import in Excel mit Bildbearbeitungssoftware oder Online-Tools reduzieren.

2. Kann ich auch andere Bildformate verwenden?
Ja, Du kannst auch PNG oder BMP verwenden, achte jedoch darauf, die Dateiendungen im Code entsprechend anzupassen.

3. Wie füge ich ein Bild in die Kopfzeile ein?
Verwende den Befehl ActiveSheet.PageSetup.CenterHeaderPicture.Filename = strDatnam im VBA-Code, um ein Bild in die Kopfzeile einzufügen.

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