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

Bildimport an Zellgröße anpassen | Herbers Excel-Forum

Forumthread: Bildimport an Zellgröße anpassen

Bildimport an Zellgröße anpassen
07.01.2010 16:06:40
Armin

Hallo,
ich importiere aus einem Verzeichnis Bilder. Nun möchte ich das importierte Bild an die Spaltenbreite anpassen. Dabei habe ich folgendes Problem mit der Umrechnung von Bildbreite zur Spaltenbreite.
Im Beispiel habe ich einen Faktor von 5.355 verwendet, welcher die Bilder schon nahe an die Spaltebreite skaliert, aber eben nicht genau. Abhängig von der Spaltenbreite ist das Bild manchmal zu breit und manchmal zu schmal.
Gibt es eine Möglichkeit (VBA-Code) um das Problem elegant zu lösen?
Hier der VBA-Code, den ich derzeit verwende.

'** Ermittlung der Spaltenbreite
varBreite = Columns("A:A").ColumnWidth
With ActiveSheet.Shapes("Picture 1")
ActiveSheet.Shapes("Picture 1").Select
Selection.ShapeRange.LockAspectRatio = msoTrue
Selection.ShapeRange.Width = varBreite * 5.355 'Auf Spaltenbreite Skalieren
End With

Vielen Dank für euere Tipps
Armin

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Bildimport an Zellgröße anpassen
07.01.2010 16:15:32
Hajo_Zi
Hallo Armin,
schaue doch auf diese Seite, wie es ohne select gemacht wird
http://hajo-excel.de/vba_bild.htm
Und gib als Breite die Breite der Spalte an.

Anzeige
AW: Width statt Columnwidth
07.01.2010 16:25:29
Daniel
Hi
verwende zum Ermittlen der Spaltenbreite nicht .ColumnWidth sondern nur .Width
.Width ist ein exakter, graphischer Wert, der für alle Elemente gleich ist, .ColumnWith hingegen ist ein Excelspezifischer Wert, der sich darauf bezieht, wieviele Zeichen bei einer Standardschrift in Standardgrösse in die Zelle passen. Eine einfache und exakte Umrechnung per Faktor von Columnwidth in Width ist nicht möglich, da ja immer noch der linke und rechte Abstand zum Rand berücksichtigt werden muss. Dieser Abstand ist fix und wirkt sich um so stärker aus, je schmaler die Zelle ist.
Gruß, Daniel
Anzeige
AW: Width statt Columnwidth
07.01.2010 16:35:58
Armin
Prima, vielen Dank
hat funktioniert.
Armin
AW: Bildimport an Zellgröße anpassen
07.01.2010 16:49:17
Tino
Hallo,
versuche es mal so.
With ActiveSheet.Shapes("Picture 1")
.LockAspectRatio = msoTrue
.Top = .TopLeftCell.Top
.Left = .TopLeftCell.Left
.Width = Columns("D:D").Width
End With
Gruß Tino
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Bildimport in Excel an Zellgröße anpassen


Schritt-für-Schritt-Anleitung

Um ein Bild in Excel an die Zellgröße anzupassen, kannst Du dies mit VBA automatisieren. Befolge diese Schritte:

  1. Öffne Excel und gehe zu dem Arbeitsblatt, in das Du das Bild einfügen möchtest.

  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Füge einen neuen Modul hinzu: Rechtsklick auf „VBAProject“ > Einfügen > Modul.

  4. Kopiere den folgenden Code in das Modul:

    Sub BildAnZelleAnpassen()
        Dim varBreite As Double
        varBreite = Columns("A:A").Width ' Spaltenbreite ermitteln
        With ActiveSheet.Shapes("Picture 1")
            .LockAspectRatio = msoTrue
            .Width = varBreite ' Bildbreite an Spaltenbreite anpassen
            .Top = .TopLeftCell.Top
            .Left = .TopLeftCell.Left
        End With
    End Sub
  5. Ändere "Picture 1" in den Namen des Bildes, das Du einfügen möchtest.

  6. Starte das Makro durch Drücken von F5. Das Bild wird nun automatisch an die Zellengröße angepasst.


Häufige Fehler und Lösungen

  • Problem: Das Bild wird nicht korrekt skaliert.

    • Lösung: Stelle sicher, dass Du .Width anstelle von .ColumnWidth verwendest, da .Width einen exakten Wert liefert.
  • Problem: Das Bild wird nicht an der richtigen Zelle positioniert.

    • Lösung: Achte darauf, dass die Eigenschaften .Top und .Left korrekt gesetzt sind, um das Bild an die Zelle zu binden.

Alternative Methoden

Wenn Du lieber ohne VBA arbeiten möchtest, kannst Du auch die folgenden Schritte ausführen:

  1. Bild einfügen: Klicke auf „Einfügen“ > „Bilder“ und wähle dein Bild aus.
  2. Bildgröße anpassen: Klicke mit der rechten Maustaste auf das Bild, wähle „Größe und Eigenschaften“ und passe die Größe manuell an.

Eine weitere Möglichkeit ist, das Bild direkt in die Zelle einzufügen und die Zelle zu formatieren, sodass das Bild automatisch an die Zellgröße angepasst wird.


Praktische Beispiele

Hier sind einige praktische Beispiele zur Verwendung von VBA für den Bildimport:

  1. Bild in Zelle einfügen und anpassen:

    Sub BildInZelleEinfügen()
        Dim pic As Picture
        Set pic = ActiveSheet.Pictures.Insert("C:\Pfad\zu\deinem\Bild.jpg")
        With pic
            .ShapeRange.LockAspectRatio = msoTrue
            .Width = Cells(1, 1).Width ' Zelle A1
            .Top = Cells(1, 1).Top
            .Left = Cells(1, 1).Left
        End With
    End Sub
  2. Bildgröße an Spaltenbreite anpassen:

    Sub BildGroesseAnpassen()
        Dim spalte As Range
        Set spalte = Columns("B:B") ' Beispiel mit Spalte B
        With ActiveSheet.Shapes("Picture 1")
            .Width = spalte.Width
            .Height = spalte.Height
        End With
    End Sub

Tipps für Profis

  • Achte darauf, die Bildnamen konsistent zu halten, um Verwirrung zu vermeiden, wenn Du mehrere Bilder in Dein Excel-Dokument einfügst.
  • Nutze die Funktion AutoFit, um die Zellengröße automatisch an den Inhalt anzupassen, bevor Du das Bild einfügst.
  • Experimentiere mit der LockAspectRatio-Eigenschaft, um sicherzustellen, dass das Bild beim Anpassen nicht verzerrt wird.

FAQ: Häufige Fragen

1. Wie kann ich mehrere Bilder gleichzeitig anpassen?
Du kannst eine Schleife in VBA verwenden, um mehrere Bilder in einer bestimmten Spalte zu durchlaufen und sie an die Zellgröße anzupassen.

2. Was mache ich, wenn das Bild die Zelle überlappt?
Überprüfe die Zellgröße und stelle sicher, dass die Top und Left Eigenschaften richtig gesetzt sind, um das Bild innerhalb der Zelle zu positionieren.

3. Ist es möglich, die Zeilenhöhe automatisch an die Bildgröße anzupassen?
Ja, Du kannst die Zeilenhöhe mit der RowHeight-Eigenschaft in VBA anpassen, indem Du die Höhe des Bildes berücksichtigst.

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