Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1612to1616
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Bilder proportional nach Höhe in Excel-D einbetten

Bilder proportional nach Höhe in Excel-D einbetten
20.03.2018 15:59:39
M
Hallo in die Runde,
ich möchte in einer Preisliste Bilder einbetten. Bilder bekomme ich per VBA-Script rein, diese werden auch eingebettet. Allerdings werden die Bilder nur korrekt in der Höhe skaliert (wie gewünscht auf die Zellenhöhe). Ich habe aber keine Ahnung wie ich es hinbekomme, damit die Bilder auch korrekt die proportional richtige Breite bekommen... (Im Moment habe ich mal die Breite gleich der Höhe gesetzt, das ist aber nicht proportional).
Was muss ich tun? Danke für jegliche Hilfe!
Folgendes habe ich "zusammengezimmert":
Private Sub CommandButton1_Click()
Dim i As Integer
For i = 2 To 10000
Dim strpath As String
strpath = "H:\Bilder_" 'Pfad anpassen
If ActiveSheet.Range("B" & i).Value > 0 Then
On Error Resume Next
ActiveSheet.Range("A" & i).Select
Set Zelle = ActiveCell
If Not Dir(strpath & Range("B" & i).Value & "_1.jpg") = "" Then
Set Bild = ActiveSheet.Shapes.AddPicture(strpath & Range("B" & i).Value & "_1.jpg",  _
False, True, 0, 0, 0, 0)
With Bild
.Top = Zelle.Top + 5
.Left = Zelle.Left + 5
.Height = Zelle.Height - 10
.Width = .Height
.Placement = 1
End With
End If
End If
Next
End Sub

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bilder proportional nach Höhe in Excel-D einbe
20.03.2018 16:15:58
Daniel
Hi
lass die Breite mal einfach weg.
normalerweise müsste, wenn du nur einen Wert von Höhe oder Breite angibst, der andere proportional mit geändert werden. (man kann das zumindest für das Bild irgendwo einstellen)
falls das nicht geht, müsstest du dir den Scale-Faktor ausrechnen und diesen dann auf höhe und breite anwenden.
SF =  (Zelle.Height - 10) / .Height
.Height = .Height * SF
.Width = .Width * SF
wenn das Bild komplett in die Zelle passen soll, müsstst du den Scale-Faktor für Höhe und Breite bestimmen und dann den kleineren davon nehmen:
SF = Worksheetfunction.Min((Zelle.Height - 10) / .Height, (Zelle.Width - 10) / .Width)
Gruß Daniel
Anzeige
AW: Bilder proportional
20.03.2018 16:16:20
Rudi
Hallo,
versuch mal
  Set Bild = ActiveSheet.Shapes.AddPicture _
(strpath & Range("B" & i).Value & "_1.jpg", False, True, 0, 0, 0, 0)
With Bild
.LockAspectRatio = True
.Top = Zelle.Top + 5
.Left = Zelle.Left + 5
.Height = Zelle.Height - 10
.Placement = 1
End With

Gruß
Rudi
Zu bedenken auch: Stauchung durch Excel
21.03.2018 07:33:34
lupo1
... falls das bei Dir eine Rolle spielt (meist nur bei kreisrunden Gegenständen auf dem Bild, die dann zur Ellipse werden).
Stretcht man die Höhe des Objekts (bzw. der Zellen) um 13/12, wird die Stauchung annähernd beseitigt. Das hängt aber vom Hardware-Einzelfall ab.
Anzeige
AW: Bilder proportional nach Höhe in Excel-D einbetten
21.03.2018 08:33:57
M
Hallo zusammen,
erst mal ein herzliches Danke für die schnellen Antworten!
Leider hat noch nichts wirklich zum Erfolg geführt, die Infos von Daniel und Rudi wirken sich zwar auf "Height" aus, aber nicht auf "Width". Die Bildhöhe hat sich schon mit meinen ersten Versuchen korrekt auf die in Excel eingestellte Zellenhöhe angepasst, die Breite wehrt sich aber hartnäckig.
Rudi: .LockAspectRatio = True - Hier passiert keine Veränderung zu meinem Script.
Daniel:
SF = (Zelle.Height - 10) / .Height
.Height = .Height * SF
.Width = .Width * SF
Hier werden die Bilder leider komplett auf 10% verkleinert, aber auch wieder quadratisch... Der Scale-Faktor greift irgendwie nicht. Muss ich da noch was ergänzen bzw. den Scale-Faktor von .Height anders berechnen und/oder anders an .Width übergeben? Wenn ich bei .Width einen festen Wert eingebe wird dieser korrekt akzeptiert, also "reagiert" die Bildbreite auf .Width! Ich kriege es nur nicht hin, den korrekten Wert aus .Heigth auszulesen und bei .Width einzugeben.
Liegt das evtl. an der Excel 2010-Version? Hier werden Bilder wohl nur mit Der "ActiveSheet.Shapes. AddPicture"-Variante korrekt eingebettet, mit der früheren "ActiveSheet.Pictures.Insert"-Variante wird das Bild zwar korrekt skaliert, aber nicht eingebettet...
Gruß,
Michael
Anzeige
AW: Bilder proportional nach Höhe in Excel-D einbe
21.03.2018 10:22:27
Daniel
Hi
ich habe mir jetzt für dich mal die Mühe gemacht, den Befehl AddPicture in der Hilfe nachzuschlagen (geht ganz einfach: Befehl markieren und F1 drücken).
und dort steht folgendes zu den Parametern Hight und Width (das sind die beiden letzten)
"Die Breite/Höhe des Bilds in Punkten (Geben Sie „-1" ein, um die Breite/Höhe der vorhandenen Datei beizubehalten)."
wenn du bei AddPicture also -1 statt 0 eingibst, dann wird das Bild in der Orignalgröße eingelesen und die brauchst du natürlich, um das Bild im richtigen Breiten-Längen-Verhältnis verkleinern zu können.
Damit sollten dann auch die Vorschläge von Rudi und mir funktionieren.
Set Bild = ActiveSheet.Shapes.AddPicture(strpath & Range("B" & i).Value & "_1.jpg", False, True, 0, 0, -1, -1)
Gruß Daniel
Anzeige
AW: Bilder proportional nach Höhe in Excel-D einbe
21.03.2018 12:58:32
M
Hallo Daniel,
es "tut" jetzt!
Dein Hinweis auf den "-1"-Wert und die Kombination aus den vorherigen Tipps bzw. meiner ursprünglichen "Zimmerei" haben das Problem gelöst - herzlichen Dank für die prompte Hilfe.
Apropo Hilfe: Mit "F1" hatte ich schon nachgesehen, da steht bei mir zwar ""Die Breite/Höhe des Bildes in Punkten", aber nichts von "(Geben Sie „-1" ein, um die Breite/Höhe der vorhandenen Datei beizubehalten)." - unterschiedliche Excel-Versionen?
Danke nochmals an alle!
Freundliche Grüße,
Michael
AW: Bilder proportional nach Höhe in Excel-D einbe
21.03.2018 13:33:27
Daniel
Hi
kann durchaus sein.
ich hab hier 2013.
bei 2010 wurde auch noch die Offline-Hilfe mitgeliefert.
die kann natürlich auch nochmal anders aussehen, als die Online-Seiten, auf die mittlerweile verwiesen wird.
Gruß Daniel
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige