Microsoft Excel

Herbers Excel/VBA-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.

GrußformelHomepage


  

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


Beiträge aus den Excel-Beispielen zum Thema "Bildimport an Zellgröße anpassen"