Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1492to1496
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 positionieren

Bilder positionieren
25.05.2016 14:09:46
Gunter
Hallo Zusammen
In einem Excel Sheet habe ich Bilder in "Miniaturform". Durch anklicken werden diese gross und wieder klein. Dazu habe ich die folgenden Makros gefunden, welche auch prima funktionieren.
Sub Zuweisen()
Dim picBild As Picture
For Each picBild In ActiveSheet.Pictures
picBild.OnAction = "gross"
Next picBild
End Sub
Sub gross()
With ActiveSheet.Shapes(Application.Caller)
.LockAspectRatio = msoTrue
.Height = .Height * 2
.Width = .Width * 2
.Rotation = 0#
.OnAction = "Tabelle1.klein"
End With
End Sub
Sub klein()
With ActiveSheet.Shapes(Application.Caller)
.LockAspectRatio = msoTrue
.Height = .Height / 2
.Width = .Width / 2
.Rotation = 0#
.OnAction = "Tabelle1.gross"
End With
End Sub

Nun möchte ich aber, dass die Bilder beim "Grossmachen" in der Bildmitte erscheinen und beim "Kleinmachen" wieder an die ursprüngliche Postion zurück kehren. Für zweckdienliche Hinweise herzlichen Dank.
Gruss
Gunter

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

Betreff
Datum
Anwender
Anzeige
AW: Bilder positionieren
25.05.2016 14:53:35
Rudi
Hallo,
einfach die Position merken.
Option Explicit
Dim sngLeft As Single, sngTop As Single
Sub Zuweisen()
Dim picBild As Picture
For Each picBild In ActiveSheet.Pictures
picBild.OnAction = "gross"
Next picBild
End Sub
Sub gross()
With ActiveSheet.Shapes(Application.Caller)
.LockAspectRatio = msoTrue
sngLeft = .Left
sngTop = .Top
.Height = .Height * 2
.Width = .Width * 2
.Rotation = 0#
.Left = (ActiveWindow.Width - .Width) / 2
.Top = (ActiveWindow.Height - .Height) / 2
.OnAction = "klein"
End With
End Sub
Sub klein()
With ActiveSheet.Shapes(Application.Caller)
.LockAspectRatio = msoTrue
.Height = .Height / 2
.Width = .Width / 2
.Rotation = 0#
.Left = sngLeft
.Top = sngTop
.OnAction = "Tabelle1.gross"
End With
End Sub
Gruß
Rudi

Anzeige
AW: Bilder positionieren
26.05.2016 11:30:30
Gunter
Hallo Rudi
Das funktioniert schon mal sehr schön.
Ich wäre dir sehr dankbar könntest du bitte kurz erklären was durch
"(ActiveWindow.Width - .Width) / 2" erreicht wird. Hab das alles nur geklaut und kann leider auch nicht im Einzelschritt durchgehen um mir die Werte anzusehen da ich immer die Fehlermeldung "Laufzeitfehler 13 -- Typen unverträglich" nach
"With ActiveSheet.Shapes(Application.Caller)" erhalte.
Prinzipiell funktioniert das Makro aber.
Danke und Gruss
Gunter

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige