Selection definieren

28/03/2010 - 17:53 von Daniel Frei | Report spam
Hallo zusammen

Mittels Makro habe ich folgenden Code erhalten:

Sub bild_kopieren()
Selection.Copy
Sheets("Erfassen").Select
Range("K3").Select
ActiveSheet.Paste
End Sub

Die Selection ist ein Bild (in der Datei als Grafik 1). Da ich aber 3 Bilder
habe (Grafik 1 -3) und die Selection von einer Zelle abhàngt (H8) möchte ich
natürlich auch, dass das entsprechende Bild als Selection geladen wird.
Wie muss ich dies im Code àndern, damit die gewünschte Grafik geladen und
Kopiert wird?

Danke für eure Hilfe und einen schönen Sonntag noch

Gruss Daniel

*********************************
Nur wer fragt kommt im Leben weiter.
Ein kluger Mann macht nicht alle Fehler selbst. Er gibt auch anderen eine
Chance. --
"Winston Churchill"
_______________________
Win 7
Office 2007 Enterprise
 

Lesen sie die antworten

#1 Andreas Killer
29/03/2010 - 09:13 | Warnen spam
On 28 Mrz., 17:53, "Daniel Frei" wrote:

Die Selection ist ein Bild (in der Datei als Grafik 1). Da ich aber 3 Bilder
habe (Grafik 1 -3) und die Selection von einer Zelle abhàngt (H8) möchte ich
natürlich auch, dass das entsprechende Bild als Selection geladen wird.
Wie muss ich dies im Code àndern, damit die gewünschte Grafik geladen und
Kopiert wird?


Hmm, da kann man jetzt 2 Antworten geben:

a.) Du kannst das Bild direkt über den Namen ansprechen und in die
Zwischenablage kopieren:

ActiveSheet.Shapes("Grafik 1").Copy

b.) Wenn Du das Bild das an einer bestimmten Stelle sich befindet
kopieren möchtest, dann ist es schwieriger, weil eine Zelle nicht mit
einem Bild verknüpft ist, aber das Bild Informationen darüber hat wo
es liegt.

Hier müsstest Du alle Bilder (Shapes) durchlaufen und nachschauen ob
die TopLeftCell-Eigenschaft der Range (Zelle) ist die Du suchst.

Andreas.

Sub Test()
Dim S As Shape, R As Range, Found As Boolean
Set R = Range("A8")
For Each S In ActiveSheet.Shapes
If S.TopLeftCell.Address = R.Address Then
S.Copy
Found = True
Exit For
End If
Next
If Not Found Then Exit Sub
Sheets("Erfassen").Select
Range("K3").Select
ActiveSheet.Paste
End Sub

Ähnliche fragen