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

Zwischenablage -> Zeichenflächen-Hintergrund

Zwischenablage -> Zeichenflächen-Hintergrund
30.07.2017 14:27:54
Martin
Hallo,
ich habe ein Problem mit dem Makrorecorder.
Ich möchte ein in einer beliebigen Zelle gespeichertes Bild als Hintergrundbild der Zeichnungsfläche eines Diagramms einsetzen.
Mit dem Makrorecorder funktioniert das auch - zunächst.
Der Makrorekorder zeichnet folgenden VBA-Code auf:
Sub Bild2Diagramm()
ActiveSheet.Shapes.Range(Array("Picture 1")).Select
Selection.Copy
ActiveSheet.ChartObjects("Diagramm 1").Activate
ActiveChart.PlotArea.Select
With Selection.Format.Fill
.Visible = msoTrue
.PresetTextured msoTexturePapyrus
.TextureTile = msoTrue
.TextureOffsetX = 0
.TextureOffsetY = 0
.TextureHorizontalScale = 1
.TextureVerticalScale = 1
.TextureAlignment = msoTextureTopLeft
End With
Range("A1").Select
End Sub

Beim Aufzeichnen funktioniert alles wie gewünscht.
Beim erneuten Abspielen der Subroutine funktioniert es nicht mehr!
Gibt es für mein Problem eine Lösung?
Viele Grüße,
Martin

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zwischenablage -> Zeichenflächen-Hintergrund
30.07.2017 18:35:50
Beverly
Hi Martin,
manche Dinge die der Makrorekorder aufzeichnet, lassen sich nicht erneut ausführen.
Exportiere das Bild und füge es dann ein über: Zeichnungsfläche formatieren -&gt Füllung -&gt Bild- oder Texturfüllung -&gt Bild einfügen aus: Datei.
Wie man Bilder exportieren kann, findest du im Archiv.


AW: Zwischenablage -> Zeichenflächen-Hintergrund
30.07.2017 19:25:13
Martin
Hi Karin,
besten Dank für deine schnelle Antwort.
So wie du es beschreibst, mache ich es bisher. Das hat aber den Nachteil, dass beim Kopieren immer auch mehrere Bilddateien zusätzlich in einen bestimmten Ordner kopiert werden müssen, der auf dem Zielsystem erst in einen bestimmten Pfad angelegt werden muss!
Um das zu vermeiden, möchte ich die verschiedenen Hintergrundbilder im Excelfile selbst ablegen und dann interaktiv darauf zugreifen.
Für Bilder von Zelle zu Zelle habe ich Lösungen gefunden, nicht aber für die Zeichnungsfläche eines Diagramms.
Ich fürchte, dass Microsoft gar nicht vorgesehen hat - oder kennst du doch eine Möglichkeit?
Viele Grüße,
Martin
Anzeige
AW: Zwischenablage -> Zeichenflächen-Hintergrund
31.07.2017 08:48:52
Beverly
Hi Martin,
Zitat: "Das hat aber den Nachteil, dass beim Kopieren immer auch mehrere Bilddateien zusätzlich in einen bestimmten Ordner kopiert werden müssen, der auf dem Zielsystem erst in einen bestimmten Pfad angelegt werden muss!"
Nein, muss es nicht. Die Bilder aus der Arbeitsmappe lassen sich per VBA problemlos exportieren (es gibt dafür 2 Methoden, zu finden im Archiv) und nach dem Einfügen in die Zeichnungsfläche wieder von der Festplatte löschen.


AW: Zwischenablage -> Zeichenflächen-Hintergrund
31.07.2017 23:02:30
Martin
Hallo Karin,
vielen dank für Deinen Hinweis. Ich hab es ausprobiert. Es funktioniert zufriedenstellend.
Leider ändert Excel die Bildgröße beim Speichern (ich vermute, abhängig von der Bildschirmauflösung des jeweiligen PCs) um und fügt am linken und unteren Rand eine Rahmenlinie hinzu. Das stört z.B. wenn ich eine genaue Übereinstimmung von berechneten Punkten zu einem Bild einer geographischen Karte brauche. Da muss ich bei meiner bisherigen Methode bleiben.
In anderen Anwendungen spielt die kleine Ungenauigkeit des wieder eingelesenen Bildfiles keine Rolle. In diesen Fällen werde ich deinen Lösungsweg einsetzen.
Nochmals vielen Dank für Deine Hilfe und viele Grüße,
Martin
Anzeige
AW: Zwischenablage -> Zeichenflächen-Hintergrund
01.08.2017 08:49:20
Beverly
Hi Martin,
welchen Code verwendest du zum Exportieren des Bildes?


AW: Zwischenablage -> Zeichenflächen-Hintergrund
01.08.2017 21:31:58
Martin
Hi Karin,
ich habe dein VBA-Beispiel aus dem Forumsbeitrag vom 17.1.2010 für meine Anwendung angepasst.
Viele Grüße,
Martin
Bild exportieren
02.08.2017 08:48:42
Beverly
Hi Martin,
dann verlinke doch bitte den Thread - 2010 ist schon lange her, vielleicht gibt es inzwischen neue Erkenntnisse.


AW: Bild exportieren
02.08.2017 10:35:49
Beverly
Hi Martin,
im Herber-Archiv gibt es viele Beiträge (auch zum Bildexport) und niemand weiß, nach welchem Stichwort du gesucht hast - also ist es doch für dich wesentlich einfacher, den bereits gefundenen Thread (der dazu im Browser bestimmt noch andersfarbig markiert war) noch einmal aufzurufen und den Link hier zu posten... ;-)
Versuche es mal so:
Sub BildExport()
Dim chrDia As ChartObject
Dim picBild As Picture
Set picBild = ActiveSheet.Pictures(1)
Application.ScreenUpdating = False
picBild.CopyPicture Appearance:=xlScreen, Format:=xlPicture
Set chrDia = ActiveSheet.ChartObjects.Add(0, 0, picBild.Width, picBild.Height)
With chrDia.Chart
' falls Diagrammfläche automatisch mit Rahmen erstellt wird diesen entfernen
.Parent.ShapeRange.Line.Visible = msoFalse
' bei Excel2016 muss die Diagrammfläche
' vor .Paste selektiert werden - andernfalls ist das Bild leer
If Val(Application.Version) = 16 Then .ChartArea.Select
.Paste
.Export Filename:="E:\Z_Test\Exportiert.jpg", FilterName:="JPG"
End With
chrDia.Delete
Kill "E:\Z_Test\Exportiert.jpg"
Set chrDia = Nothing
Set picBild = Nothing
Application.ScreenUpdating = True
End Sub
Speicherpfad und Bildname im Code anpassen!!


Anzeige
AW: Bild exportieren
02.08.2017 11:51:03
Martin
Hi Karin,
danke für dein Beispiel-VBA-Sub. Bin ein paar Tage verreist und werde es dann probieren, und antworten.
Bei der Archivsuche ist es egal welchen Suchbegriff ich eingebe (habe mehrere ausprobiert, z.B 'Bild speichern'). Die Archivsuche sucht überall, nur nicht im Herber-Archiv! Ich bekam under anderem eine Seite bei ebay und eine bei der Telecom als Suchergebnis.
Viele Grüße,
Martin

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige