Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1696to1700
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

Bildposition

Bildposition
19.06.2019 20:32:40
Hopps
Hallo,
mit folgendem Code (danke an Daniel), lege ich eine Bildposition fest.
If Range("Z11") = "ja" Then
Pfad = ThisWorkbook.Path & "\Zeichnungen11\"
Dateiname = Dir(Pfad & Range("F3").Text & "*")
If Dateiname  "" Then
ActiveSheet.Pictures.Insert(Pfad & Dateiname).Select
With Selection
.Top = Rows(36).Top
.Left = Columns(20).Left + Columns(4).Width / 2
If .Height > .Width Then
.Height = 200
Else
.Width = 200
End If
End With
End If
End If
Leider sind die Bilder nicht immer 2/3 oder 3/2 wo dies nicht unbedingt auffällt.
Es sind teilweise Bilder auch mit dabei z.B. A: 419 x 1276 (also hoch und schmal) oder B: 2082 x 767 (also sehr breit und nicht hoch).
Wie kann ich z.B. festlegen, dass alle Bilder die in etwa im 2/3 oder 3/2 Format sind, wie oben eingefügt werden,
wenn sie jedoch zu A tendieren (ab 2/4), dann ebenso wie oben einfügen, jedoch eine andere Höhe bekommen,
und wenn sie zu B tendieren (ab 4/2) dann an einem ganz anderen Punkt eingefügt werden (jetzt bei T36, soll M48).
Allgemeine Frage:
Wie kann ich festlegen, dass die obere rechte Ecke des Bildes als Einfügepunkt festgelegt wird?
(ich hatte es mit "Right" versucht, jedoch kam da immer ein Fehler).
Ich hoffe, jemand kann mir behilflich sein?
Mit dankbaren Grüßen
Hopps

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bildposition
19.06.2019 20:46:52
Daniel
Hi
1. bilde den Quotienten aus Höhe und Breite.
ist dieser größer als 2 oder kleiner als 0,5 ist das Höhen/Breitenverhältnis 4/2 bzw 2/4 überschritten
wenn du ein Bild verzerren willst, musst du das Excel mitteilen, und dann gewünschte Höhe und gewünschte Breite angeben
.ShapeRange.LockAspectRatio = msoFalse
.Height = ....
.Width = ...

(falls der Code nicht passt, selber mal von Hand für das Bild diese Einstellung ändern und mit dem Recorder aufzeichen)
2. in VBA ist für ein Bild oder Grafikelement immer die linke obere Ecke der Referenzpunkt, dessen Position du angeben musst, es gibt nur TOP und LEFT.
wenn du die Position über die rechte obere Ecke verwenden willst, musst du eben umrechnen und einfach von der Kooridinate für die rechte Ecke die Breite abziehen, dann hast du die Koordinate für die Linke Ecke:
.Left = xxx - .Width
Gruß Daniel
Anzeige
AW: Bildposition
20.06.2019 06:28:22
Hopps
Hallo Daniel,
danke für Deine Hilfe und die Erläuterungen.
Konnte nun nen für mich akzeptabelen Kompromiss finden in den Abmessungen. Ist halt schwierig, wenn die Vorlagen so unterschiedlich sind...
Auch der Wechsel zw. A oder B funktioniert.
    If Range("Z11") = "ja" Then
Pfad = ThisWorkbook.Path & "\Zeichnungen11\"
Dateiname = Dir(Pfad & Range("F3").Text & ".jpg")
If Dateiname  "" Then
ActiveSheet.Pictures.Insert(Pfad & Dateiname).Select
With Selection
If (.Width / .Height) > 0.86 Then
.Top = Rows(41).Top
.Left = Columns(14).Left + Columns(4).Width / 2
.ShapeRange.LockAspectRatio = msoFalse
.Height = 200
.Width = 300
Else
.Top = Rows(36).Top
.Left = Columns(18).Left + Columns(4).Width / 2
.ShapeRange.LockAspectRatio = msoFalse
.Height = 250
.Width = 200
End If
End With
End If
End If
Cool...danke Dir für Deine Hilfe!
Hopps
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige