Herbers Excel-Forum - das Archiv

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


Betrifft: Bildimport an Zellgröße anpassen
von: Armin

Geschrieben am: 07.01.2010 16:06:40

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

Betrifft: AW: Bildimport an Zellgröße anpassen
von: Hajo_Zi

Geschrieben am: 07.01.2010 16:15:32
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.

Betrifft: AW: Width statt Columnwidth
von: Daniel

Geschrieben am: 07.01.2010 16:25:29
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

Betrifft: AW: Width statt Columnwidth
von: Armin
Geschrieben am: 07.01.2010 16:35:58
Prima, vielen Dank
hat funktioniert.
Armin

Betrifft: AW: Bildimport an Zellgröße anpassen
von: Tino
Geschrieben am: 07.01.2010 16:49:17
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
Excel-Beispiele zum Thema "Bildimport an Zellgröße anpassen"
Druckseite anpassen Spaltenbreite anpassen
UserForm an Excel-Fenster anpassen Grafiken an eine Seite anpassen
Bilder in UserForm und Bildgröße anpassen Tagesliste eines Monats exakt anpassen
Tages-ComboBox einer UserForm an den ausgewählten Monat anpassen Zeilenhöhe bei verbundenen Zellen anpassen
Anpassen-Dialog über VBA aufrufen Spaltenbreiten der nicht ausgeblendeten Spalten anpassen
Bewerten Sie hier bitte das Excel-Portal