Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
252to256
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
252to256
252to256
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Bild positionieren

Bild positionieren
08.05.2003 13:20:17
Carsten
Hallo zusammen,

ich füge in ein Tabellenblatt per Makro eine Abbildung ein.
Gibt es eine Möglichkeit, diese Abbildung automatisch innerhalb eines fest definierten Zellbereiches vertikal und horizontal zu zentrieren?

Gruß
Carsten

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Bild positionieren
08.05.2003 13:25:17
ChrisL

Hallo Carsten

Mit Range("A1").ColumnWidth, .Top etc. bekommst du die genaue Position der Zelle.

Anhand der Grösse des Bildes umrechnen und einfügen.

Gruss
Chris

Re: Bild positionieren
08.05.2003 13:32:04
Carsten

Hallo Chris,

ich erstelle eine Kalkulations- und Angebotsdatei. Aus dieser Datei werden automatisch Angebotsblätter mit sämtlichen Produktdaten, Preisen etc. erstellt. Leider sind die Produktbilder die eingefügt werden sollen vom Format her sehr unterschiedlich.
Mit meiner jetzigen Lösung werden die Bilder immer links oben in den Zellbereich eingefügt. Der Abstand zum Rand ist jedoch immer unterschiedlich, sowohl nach rechts als auch nach oben.

Eine andere Möglichkeit gibt es nicht?

Carsten

Anzeige
Re: Bild positionieren
08.05.2003 13:37:14
ChrisL

Hallo Carsten

Kommt auf den Umfang an, aber vielleicht ist es eine Variante, wenn du alle Bilder direkt in der Datei speicherst und mit Visible arbeitest.

Ansonsten müsste sich die Grösse des Bildes auch fesstellen lassen... Object oder Image Width oder so ähnlich

Gruss
Chris

Re: Bild positionieren
08.05.2003 13:59:08
Carsten

Hallo Chris,

ich kann die Bilder nicht in der Datei speichern, da ich dann ca. 90 Bilder speichern müßte und das würde alle Rahmen sprengen.

Ich werd' noch mal ein bißchen suchen, vielleicht finde ich ja noch eine Lösung.

Danke trotzdem.

Gruß
Carsten

Vielleicht kann ich helfen
08.05.2003 14:33:27
Andreas Walter

Meine Anwendung war wie folgt:

In bestimmten Zellen, Bild-Dateien einfügen. Danach diese Bild-Dateien verkleinern/vergrössern, damit sie immer eine bestimmte Größe haben.

Mit
ActiveSheet.Pictures.Insert(BildName).Select
habe ich in eine Zelle ein Bild eingefügt


Mit
wantedhigh = 150
wantedwide = 120
For Each grafi In ActiveSheet.Shapes
grafi.Select
actualhigh = grafi.Height
actualwide = grafi.Width
If (actualhigh / actualwide) > (wantedhigh / wantedwide) Then
grafi.Height = wantedhigh
Else
grafi.Width = wantedwide
End If
Next
habe ich vergrössert/verkleinert. Das hilft Dir nicht direkt, weil Du nicht verkleinern/vergrössern willst, aber zeigt wie man feststellen kann, wie gross das Bild ist :
actualhigh = grafi.Height
actualwide = grafi.Width

Der Makro Rekorder sagt mir, wenn ich ein Bild verschiebe:
Selection.ShapeRange.IncrementLeft 36.75
Selection.ShapeRange.IncrementTop 8.25
z.B.


So mit einem bisschen Gehirnschmalz, schätze ich, dass Du jetzt herausrechnen kannst, wie viel du verschieben musst, damit du ein Bild zentrierst.



Anzeige
Re: Bild positionieren
08.05.2003 14:38:08
L.Vira

Wo genau soll das Bild platziert werden?

Re: Vielleicht kann ich helfen
08.05.2003 14:48:08
Carsten

Hallo Andreas,

ich werde das ganze mal versuchen. Das größte Problem wird jedoch sein, das dass Höhen-Breiten-Verhältnis der Bilder nie gleich ist. Wenn ich die Bilder jetzt auf eine einheitliche Größe bringe werden die Bilder verzerrt.

Aber wer weiß, vielleicht hilft es doch besser als ich dachte.

Gruß
Carsten

Re: Vielleicht kann ich helfen
08.05.2003 15:00:59
Andreas Walter

> Das größte Problem wird jedoch sein, das dass Höhen-Breiten-Verhältnis der Bilder nie gleich ist. Wenn ich die Bilder jetzt auf eine einheitliche Größe bringe werden die Bilder verzerrt.

Nee - langsam jetzt - ich schlage nicht vor die Bilder in der Größ zu ändern. (Gehen würde es aber schon)

Ich schlage vor
- Bild einfügen
- Größ vom Bild feststellen
actualhigh = grafi.Height
actualwide = grafi.Width
- Du musst wissen, wie gross der Platz ist, in dem das Bild zu positionieren ist - sagen wir mal x horizontal und y hoch.
- wir nehman an x > actualwide
dann sollte das Bild nach rechts verschoben werden und zwar genau (x-actualwide)*0,5
- wir nehman an y > actualhigh
dann sollte das Bild nach unten verschoben werden und zwar genau (y-actualhigh)*0,5
- dass machst Du mit Selection.ShapeRange.IncrementLeft bzw.
Selection.ShapeRange.IncrementTop

Da ist nichts mit vergösseren/verkleinern. Wobei es nicht dagegen spricht das Bild IN BEIDE RICHTUNGEN zu vergrösseren/verkleinen (um Verzerrungen zu vermeiden)


(Wenn x


Anzeige
a bisserl verloren...
08.05.2003 15:03:55
Andreas Walter

Ich vergesse in diesem Forum, dass man nicht
"kleiner als"
schreiben darf

Wenn x kleiner als actualwide oder y kleiner als actualhigh dann muss man verkleinern. Siehe hierzu die Schleife im anderen Beitrag. Zu beachten - in dieserSchleife wird NICHT verzerrt. Diese Schleife vergößert/verkleinert BEIDE axen

Wird schon klappen

Re: Bild positionieren
08.05.2003 15:07:44
Carsten

Hallo,

das Bild soll mittig im Bereich F5:H27 positioniert werden.

Gruß
Carsten

Re: a bisserl verloren...
08.05.2003 15:08:54
Carsten

Dann habe ich Dich falsch verstanden. Die letzte Erklärung hat mir da schon mehr helfen können.
Ich werde mal ein bißchen basteln...muß ja machbar sein.

Danke
Carsten

Anzeige
Re: Bild positionieren
08.05.2003 17:02:54
L.Vira

du kannst mit [f5].left [f5].Top [H27].Offset(0, 1).Left
[H27].Offset(1, 0).Top
die Koordinaten ermitteln und dann dein Bild platzieren.

Re: Bild positionieren
09.05.2003 08:00:22
Carsten

Moin moin.

Du hättest schreiben sollen "man kann"...meine VBA Kenntnisse stoßen da mal wieder an ihre Grenzen.

Könntest Du's ein bißchen genauer beschreiben?

Gruß
Carsten

Re: Bild positionieren
09.05.2003 11:25:30
L.Vira

Beschreiben? Ich kann dir einen Code zur Verfügung stellen, wenn du noch angibst, ob das Bild immer in den Zielbereich eingepasst werden soll(Seitenverhältnis bleibt gleich) oder eben nicht.

Re: Bild positionieren
09.05.2003 14:08:17
Carsten

Das wäre super.

Ja, das Bild soll immer innerhalb dieses Bereiches eingefügt/eingepasst werden.

Danke und schönes Wochenende im voraus.

Gruß
Carsten


Anzeige
Re: Bild positionieren
09.05.2003 14:42:18
L.Vira

Const FULLNAME As String = "C:\Eigene Dateien\Eigene Bilder\Girl.jpg"
Sub Grafik()
Dim dblLeft As Double, dblTop As Double, dblOldW As Double, dblOldH As Double
Dim dblWidth As Double, dblFaktor As Double, objBild As Object dblLeft = [f5].Left
dblTop = [f5].Top
dblWidth = [h27].Offset(0, 1).Left - dblLeft
Set objBild = ActiveSheet.Pictures.Insert(FULLNAME)
With objBild
.Left = dblLeft
.Top = dblTop
dblOldW = .Width
dblOldH = .Height
dblFaktor = dblOldW / dblWidth
.Width = dblOldW / dblFaktor
.Height = dblOldH / dblFaktor
End With
End Sub


Anzeige
Re: Bild positionieren
12.05.2003 10:06:50
Carsten

Hallo,

vom Prinzip her klappt das Super. Das Bild wird jedoch immer in der Breite angepaßt. Bei manchen Bildern kommt es dann vor, dass es in der Höhe weit über den Bereich hinausgeht.
Was muß ich ändern, damit das Bild optimal in den Rahmen eingepaßt wird?

Hast Du da noch eine Idee?

Gruß
Carsten

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige