Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.10.2025 10:28:49
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Grafik Format Makro

Forumthread: Grafik Format Makro

Grafik Format Makro
11.04.2006 13:45:01
AndreasB
Hallo zusammen !!
Ich habe mir mit Eurer Hilfe zwei Makros zusammengestellt:
Ich markiere eine Grafik und starte das Makro "FormatEinlesen".
Die aktuellen Grafikeinstellungen werden eingelesen.
Dann markiere ich eine andere Grafik und starte das Makro "FormatZuweisen".
Die Grafikeinstellungen der ersten Grafik werden dieser Grafik zugewiesen.
Die Makros funktionieren wunderbar und sie tun ohne weiteres ihren Dienst.
Meine Frage wäre: Ist eine Vereinfachung der ganzen Sache möglich? Wäre
es konkret möglich alles in ein Makro zu verpacken?
Ist Folgendes möglich:
1. erste Grafik markieren
2. Makro starten (die Einstellungen werden eingelesen)
3. zweite Grafik markieren (mit dem Markieren der zweiten Grafik werden auch
schon die Einstellungen zugewiesen)
Vielleicht kann mir jemand einen Tipp geben. Dafür wäre ich sehr dankbar.
Derweil schöne Grüße
Andreas
Option Explicit
Dim Links, Oben, Rechts, Unten, Höhe, Breite

Sub FormatEinlesen()
Dim sh As Shape
Select Case TypeName(Selection)
Case "Picture":
Set sh = ActiveSheet.Shapes(Selection.Name)
With sh
Links = .PictureFormat.CropLeft
Oben = .PictureFormat.CropTop
Rechts = .PictureFormat.CropRight
Unten = .PictureFormat.CropBottom
Höhe = .Height
Breite = .Width
End With
Case Else
MsgBox "Keine Grafik!", , TypeName(Selection)
End Select
End Sub


Sub FormatZuweisen()
Dim sh As Shape
Select Case TypeName(Selection)
Case "Picture":
Set sh = ActiveSheet.Shapes(Selection.Name)
With sh
.LockAspectRatio = msoFalse
.PictureFormat.CropLeft = Links
.PictureFormat.CropTop = Oben
.PictureFormat.CropRight = Rechts
.PictureFormat.CropBottom = Unten
.Height = Höhe
.Width = Breite
.LockAspectRatio = msoTrue
End With
Case Else
MsgBox "Keine Grafik!", , TypeName(Selection)
End Select
End Sub

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Grafik Format Makro
11.04.2006 17:08:31
Dan
Hallo Andreas,
zwei Tipps habe ich:
- den Makros kann man Short-cut zuweisen, also z.B dem Makro 'FormatEinlesen' koennte man einen Short-cut 'Ctrl+e' zuweissen, und dem 'FormatZuweisen' 'Ctrl+z'.Es reicht dann nur noch die tasten zu drucken.
- man kann den Code vom 'FormatZuweisen' noch so aendern, dass es moeglich ist auch fuer mehreren objecte gleichzeitig den Format zuweissen.
Hier der Code dafuer. Gruss Dan
Option Explicit
Public Links, Oben, Rechts, Unten, Höhe, Breite
Sub FormatEinlesen()
Dim sh As Shape
Select Case TypeName(Selection)
Case "Picture":
Set sh = ActiveSheet.Shapes(Selection.Name)
With sh
Links = .PictureFormat.CropLeft
Oben = .PictureFormat.CropTop
Rechts = .PictureFormat.CropRight
Unten = .PictureFormat.CropBottom
Höhe = .Height
Breite = .Width
End With
Case Else
MsgBox "Keine Grafik!", , TypeName(Selection)
End Select
End Sub
Sub FormatZuweisenStart()
Dim obj As Object
If (VBA.TypeName(Selection) = "DrawingObjects") Then
For Each obj In Selection
Call FormatZuweisen(obj)
Next obj
Else
Call FormatZuweisen(Selection)
End If
End Sub

Private Sub FormatZuweisen(ByRef i_obj As Variant)
Dim sh As Shape
Select Case TypeName(i_obj)
Case "Picture":
Set sh = ActiveSheet.Shapes(i_obj.Name)
With sh
.LockAspectRatio = msoFalse
.PictureFormat.CropLeft = Links
.PictureFormat.CropTop = Oben
.PictureFormat.CropRight = Rechts
.PictureFormat.CropBottom = Unten
.Height = Höhe
.Width = Breite
.LockAspectRatio = msoTrue
End With
Case Else
MsgBox "Keine Grafik!", , TypeName(i_obj)
End Select
End Sub

Anzeige
Dankeschön für die Hilfe !!! o.T.
12.04.2006 08:39:49
AndreasB
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige