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

Zellbereich kopieren und als Bild einfügen

Zellbereich kopieren und als Bild einfügen
10.11.2023 10:10:01
Sandra
Hallo Zusammen,

ich hab schonmal versucht mein "Problemchen" mit dem Makro Recorder aufzuzeichnen, dass hat aber nicht zum gewünschten Erfolg geführt.

Also ich würde gern vom Tabellenblatt ("Input") denn Zellbereich (AB15:AZ43) kopieren (hier sind wechselnde Grafiken enthalten).
Das ganz soll dann auf dem Tabellenblatt ("Datasheet") unter C8 als Bild eingefügt werden und um 20% verkleinert werden.
Vorher soll auf dem Datasheet noch abgefragt werden ob ein solches kopiertes Bild enthalten ist und dieses soll dann gelöscht werden.

Ivh danke euch schonmal vorab.

VG
Sandra

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

Betreff
Datum
Anwender
Anzeige
AW: Zellbereich kopieren und als Bild einfügen
10.11.2023 10:27:01
Beverly
Hi Sandra,

vielleicht so:

Range("AB15:AZ43").CopyPicture

With Worksheets("Datasheet")
If .Shapes.Count > 0 Then .Shapes(1).Delete
.Paste
With .Shapes(1)
.Top = Rows(8).Top
.Left = Columns(3).Left
.LockAspectRatio = msoTrue
.ScaleHeight 0.2, msoFalse, msoScaleFromTopLeft
End With
End With


Ich habe angenommen, dass es in Datasheet immer maximal nur 1 Shape gibt, welches vorher gelöscht werden soll.

Bis später
Karin

Link zur Homepage: https://excel-inn.de/
Anzeige
AW: Zellbereich kopieren und als Bild einfügen
10.11.2023 10:50:27
Sandra
Hallo Karin,
das funktioniert super danke.

leider habe ich übersehen, dass sich auf dem Blatt ein Logo befindet, dass auf dem Blatt bleiben soll... also hätte ich zwei Bilder.
Kann ich das eingefügte kopierte Bild irgendwie deklarieren und z.B. immer mit dem Namen Kopie... und dann wird immer das alte Bild Kopie gelöscht und ein neues Bild eingefügt?

Lieben Dank schonmal.

LG
Sandra
AW: Zellbereich kopieren und als Bild einfügen
10.11.2023 11:10:18
MCO
Moin!

Mein Gedanke war eher andersherum:
Das Logo wird doch immer den gleichen Namen haben. Also werden alle Grafiken ausser dem Logo vorher gelöscht.

Tausche
If .Shapes.Count > 0 Then .Shapes(1).Delete


gegen
        For Each shp In .Shapes

If shp.Name > "deinLogo" Then shp.Delete
Next shp

Gruß, MCO
Anzeige
AW: Zellbereich kopieren und als Bild einfügen
10.11.2023 13:35:22
Beverly
Hi Sandra,

entweder du vergibst dem neu eingefügten Bild einen Namen - dann kannst du es anhand dieses Namen zu Beginn löschen:

With Worksheets("Datasheet")

.Shapes("MeinBild").Delete
.Paste
With .Shapes(.Shapes.Count)
.Name = "MeinBild"
.Top = Rows(8).Top
.Left = Columns(3).Left
.LockAspectRatio = msoTrue
.ScaleHeight 0.2, msoFalse, msoScaleFromTopLeft
End With
End With


Dann kann es aber passieren, dass eine Fehlermeldung kommt, falls jemand das Bild gelöscht hat. Deshalb ist es besser, in einer Schleife über alle Shapes zu laufen und entweder zu prüfen ob eins mit dem betreffenden Namen vorhanden ist, oder zu prüfen, ob das laufende Shape mit seiner linken oberen Ecke auf Zelle C8 liegt:

Dim shaShape As Shape

With Worksheets("Datasheet")
For Each shaShape In .Shapes
' Shape löschen nach Name
If shaShape.Name = "MeinBild" Then
shaShape.Delete
Exit For
End If
' Shape löschen nach Adresse linke obere Zelle
If shaShape.TopLeftCell.Address(False, False) = "C8" Then
shaShape.Delete
Exit For
End If
Next shaShape
.Paste
With .Shapes(.Shapes.Count)
.Name = "MeinBild" '== Zeile nicht unbedingt notwendig wenn die linke obere Ecke beim Löschen geprüft wird
.Top = Rows(8).Top
.Left = Columns(3).Left
.LockAspectRatio = msoTrue
.ScaleHeight 0.2, msoFalse, msoScaleFromTopLeft
End With
End With


Beim letzten Code brauchst du natürlich nur eine der beiden Varianten, die andere kannst du selbstverständlich löschen.

Bis später
Karin

Link zur Homepage: https://excel-inn.de/
Anzeige
AW: Zellbereich kopieren und als Bild einfügen
13.11.2023 09:38:34
Sandra
Hallo Karin,

es funktioniert super... Dankeschön. und wieder was gelernt... :-)

VG
Sandra
AW: Zellbereich kopieren und als Bild einfügen
10.11.2023 11:22:50
Sandra
Hallo MCO,

also das Logo bleibt jetzt stehen und auch das neue Bild kommt rein, aber jetzt wird das Logo auf C8 eingefügt und verkleinert,
und das kopierte Bild wird irgendwo eingefügt...

So sieht mein Code aus, aber das wird wohl was falsch sein, oder?

Sub kopieren()



Range("AB15:AZ43").CopyPicture
With Worksheets("Datasheet")
For Each shp In .Shapes
If shp.Name > "Logo" Then shp.Delete
Next shp
.Paste
With .Shapes(1)
.Top = Rows(8).Top
.Left = Columns(3).Left
.LockAspectRatio = msoTrue
.ScaleHeight 0.2, msoFalse, msoScaleFromTopLeft
End With
End With
End Sub
Anzeige
AW: Zellbereich kopieren und als Bild einfügen
10.11.2023 11:51:07
MCO
Hallo Sandra!

Shapes(1) bezieht sich auf das Logo, da es ja als erstes und einziges Bild im Sheet verbleibt.
Andere das in Shapes(2)

Gruß, MCO
AW: Zellbereich kopieren und als Bild einfügen
10.11.2023 12:03:21
Sandra
Oh Dankeschön. jetzt klappt es... :-)
AW: Zellbereich kopieren und als Bild einfügen
10.11.2023 11:51:31
volti
Hallo Sandra,

ich glaube, da war noch ein kliener Gedankenfehler drin. Das neu eingefügte Bild hat den letztes Index. Wenn nur eins (Logo) vor dem Einfügen stehen bleibt, kann es nicht Index 1 haben sondern Index 2 oder halt eben shapes.count.
Wenn das neue eingefügte Bild dann noch einen Namen bekommt (z.B. Kopie), kann man es beim nächsten mal auch gezielt löschen, ohne Schleife.

Sub kopieren()



Range("AB15:AZ43").CopyPicture
With Worksheets("Datasheet")
For Each shp In .Shapes
If shp.Name > "Logo" Then shp.Delete
Next shp
.Paste
With .Shapes(.Shapes.Count)
.Name = "Kopie"
.Top = Rows(8).Top
.Left = Columns(3).Left
.LockAspectRatio = msoTrue
.ScaleHeight 0.2, msoFalse, msoScaleFromTopLeft
End With
End With
End Sub


Gruß
Karl-Heinz
Anzeige
AW: Zellbereich kopieren und als Bild einfügen
10.11.2023 12:04:52
Sandra
@Kalr-Heinz:

Danke auch an Dich. auch für die Erläuterung

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige