Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Makro zur Bildgrößenveränderung





Frage

Hallo, ich bin leider kein VBA Experte und stelle deswegen hier die Frage wie ein Makro aussehen muss mit dem man alle Bilder in einem Excel Dokument markieren kann und diese in eine bestimmte Bildhöhe umwandeln kann. Bisher mache ich das immer umständlich über den Zeichnen Pfeil mit dem ich alle markiere und dann mit Grafik formatieren. Dort stelle ich dann die Höhe auf 5. Das klappt ganz gut, dauert aber zu lange. Danke Andreas

Antwort 1 von Saarbauer

Hallo,

zeichne dir doch das erforderliche Markro auf.

Gruß

Helmut

Antwort 2 von AWW

Wenn ich das aufzeichne, dann erwischt er im wahrscheinlich im Zweifelsfall nicht alle Bilder im Dokument. Oder doch ?

Sauberer wäre das auif jeden Fall in VBA.

Aber ich probiere das mit dem aufzeichnen mal.

Antwort 3 von Saarbauer

Hallo,

die Aufzeichnung ist ein VBA-Makro. Aber so wie ich es aus deinen Angaben verstehe soll das Programm wohl automatisch die Bilder suchen und ändern.

Gruß

Helmut

Antwort 4 von AWW

Genau, das Makro soll alle Bilder im Dokument suchen markieren und dann auf die Höhe 5 cm ändern.

Am besten wären 2 Makros. Eines das alle Bilder im Dokument markiert/auswählt.

Und ein Makro, das die Bildgröße aller Bilder auf eine angegebene Höhe verändert.

Grüße

Andreas

Antwort 5 von aww

Also wie ich die Bildgröße verändere habe ich mittlerweile rausgefunden:

Sub Größe()

Selection.ShapeRange.LockAspectRatio = msoTrue
Selection.ShapeRange.Height = 141.75

End Sub

Wie kann ich aber per Makro alle Bilder im Tabellenblatt automatisch markieren. Egal wo diese sich befinden und wie groß diese sind!

Danke
Andreas

Antwort 6 von coros

Hallo Andreas,

nachfolgendes Makro bring alle Bilder in Deinem Tabellenblatt auf die von Dir vorgegebene Größe. Kopiere das Makro in ein StandardModul.

Option Explicit

Sub Bilder_ändern()
 Dim Picture As Shape
    For Each Picture In ActiveSheet.Shapes
    With Picture
    .Height = 141.75
    End With
    Next
End Sub


Ich hoffe, Du kommst klar. Bei Fragen melde Dich

Solltest Du nicht wissen, wie Du den Code in Deine Datei bekommst, dann schau mal auf meiner HP in der Rubrik Anleitungen und dort dann in der Anleitungsnummer 2 nach. Dort stelle ich dazu eine bebilderte Anleitung zur Verfügung, die Dir sicherlich helfen wird.

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 7 von aww

Hey Oliver,

klappt super.

Wenn Du jetzt noch ein Makro parat hast mit dem ich alle Bilder makieren und kopieren kann, so dass ich die Bilder in einem anderen Excel Sheet manuell einfügen kann, wäre das super !

Vielen Dank schon mal

Andreas

Übrigens sehr coole HP von Dir. War ich auch schon mal drauf!

Antwort 8 von coros

Hallo Andreas,

dann sieht das Makro folgendermaßen aus:

Option Explicit

Sub Bilder_kopieren()
 Dim Picture As Shape
 Application.ScreenUpdating = False
    For Each Picture In ActiveSheet.Shapes
    With Picture
    .Copy
    End With
    Sheets("Tabelle2").Paste
    Next
End Sub


Hier werden alle Bidlewr aus dem aktiven Tabellenblatt in das Tabellenblatt mit dem Namen "Tabelle2" an die gleiche Position, wie sie im aktiven Blatt positioniert sind, kopiert.

Danke für das Homepage-Lob.

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 9 von aww

Hallo Oli,

gibt es auch die Möglichkeit lediglich alle Bilder zu markieren oder diese zu markieren und in die Zwischenablage zu kopieren ?

Ich will diese dann nämlich in anderen immer unterschiedlichen Excel Dokumenten verwenden.

Danke

Andreas

Antwort 10 von coros

Hallo Andreas,

dann sieht das Makro wie folgt aus:

Option Explicit

Sub Bilder_in_Zwischenablage()
Dim Picture As Shape
For Each Picture In ActiveSheet.Shapes
Picture.Select Replace:=False
Next
Selection.Copy
End Sub



Befinden sich nicht nur Grafiken, sondern auch Buttons oder Textfelder usw. in den Tabellenblättern, muss heruasgefiltert werden, bei welchem Objekt es sich um eine Grafik handelt. Das würde dann wie folgt aussehen. Das Makro ist das gleiche, außer dass nur Grafiken in die Zwischenablage kopiert werden.

Option Explicit

Sub Nur_Bilder_in_Zwischenablage()
Dim Picture As Shape
For Each Picture In ActiveSheet.Shapes
If Picture.Type = 13 Then Picture.Select Replace:=False
Next
Selection.Copy
End Sub



MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: