Anzeige
Archiv - Navigation
1748to1752
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

Bild kopieren ohne select

Bild kopieren ohne select
06.04.2020 14:14:48
Ralf
Hallo nochmal,
ich habe folgenden Code in einer Schleife:
    Dim WS_Z As Worksheet  'Tabelle in die das Bild rein soll
Dim WS_DD As Worksheet 'Tabelle aus dem das Bild kommt (Bild: Bild_Neu)
Dim kleb as String     'Variable wird in der Schleife befüllt
'txt kommt aus einer For next Schleife
If kleb  "" Then
WS_DD.Shapes("Bild_Neu").Copy
WS_Z.Range("M" & txt).Select
WS_Z.Paste
Selection.ShapeRange.IncrementLeft 3.5
Selection.ShapeRange.IncrementTop 3.5
End If

Wie komme ich ohne select aus? Ersetze ich Select durch Paste funktioniert das dann nicht mehr und die beiden letzen Zeilen Selection.... gehen logischer Weise auch nicht mehr. Statt Range könnte ich auch Cells nehmen.
Grüße Ralf

20
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bild kopieren ohne select
06.04.2020 14:19:58
Nepumuk
Hallo Ralf,
teste mal:
WS_DD.Shapes("Bild_Neu").Copy
WS_Z.Paste Destination:=WS_Z.Range("M" & txt)
With WS_Z.Shape(WS_Z.Shapes.Count)
    .ShapeRange.IncrementLeft 3.5
    .IncrementTop 3.5
End With

Gruß
Nepumuk
Anzeige
AW: Bild kopieren ohne select
06.04.2020 14:21:06
Nepumuk
Ooooooooops,
so:
WS_DD.Shapes("Bild_Neu").Copy
WS_Z.Paste Destination:=WS_Z.Range("M" & txt)
With WS_Z.Shape(WS_Z.Shapes.Count)
    .IncrementLeft 3.5
    .IncrementTop 3.5
End With

Gruß
Nepumuk
Anzeige
AW: Bild kopieren ohne select
06.04.2020 14:26:27
Ralf
es kommt ein Fehler beim Kompilieren: Methode oder Datenobjekt nicht gefunden
AW: Bild kopieren ohne select
06.04.2020 14:30:10
Ralf
es hat nur ein s bei shape gefehlt. 3. Zeile
AW: Bild kopieren ohne select
06.04.2020 14:36:13
Ralf
mit dem s bei shapes läuft das prima. Danke
Jetzt habe ich aber noch eine Frage.
Im meiner Schleife wird das Bild ca. 6x hintereinander, immer in eine neue Zeile eingefügt.
Wenn ich das Macro laufen lasse stoppt es bei .copy, nach dem 4. mal einfügen. Jetzt gehe ich ins Debuggen und drücke F5 dann funktioniert das ohne Probleme und beendet das Makro richtig. Warum ist das so? Weiß das jemand.
Ich kann mit Application.wait eine Pause einfügen, dann läuft es automatisch durch.
Diese Pause möchte ich aber nicht, weil das dann zu lange Dauert bei z.b. 18 Durchgängen.
Weiß hier noch jemand Rat?
Anzeige
AW: Bild kopieren ohne select
06.04.2020 14:43:45
Nepumuk
Hallo Ralf,
du musst nur einmal kopieren und dann z.B. 18 mal einfügen.
Gruß
Nepumuk
AW: Bild kopieren ohne select
06.04.2020 14:53:38
Ralf
Hallo Nepumuk,
nein, ich habe eine Schleife, die kleb befüllt und dann mit For txt to.... next prüft und bei Bedarf das Zeichen setzt. Das funktioniert nur Zeilenweise, da jede Zeile auf das kleb erneut geprüft werden muss.
Wenn ich nach der Fehlermeldung ins Debuggen gehe und F5 drücke läuft das Makro fertig ohne, dass ich etwas übersprungen oder korrigiert habe. Also im Einzelschritt gibt es keinerlei Fehler. Nur wenn das Makro aufgerufen wird und eigentlich durchlaufen sollte. Warum es stoppt, ich kann keinen Fehler finden.
Und baue ich ein Application.wait ein, dann läuft es auch durch.
Gruß Ralf
Anzeige
AW: Bild kopieren ohne select
06.04.2020 14:57:14
Ralf
Noch etwas, ich hatte vorher die Worksheets WS_dd und WS_Z vor diesem Post immer mit .select erst aktiviert, da ging das auch.
Ich vermute langsam, das Makro ist zu schnell geworden. Kann das sein?
AW: Bild kopieren ohne select
06.04.2020 15:00:09
Nepumuk
Hallo Ralf,
nicht zu schnell, Excel hat seit der Version 2013 Probleme beim Kopieren von Shapes.
Gruß
Nepumuk
AW: Bild kopieren ohne select
06.04.2020 15:08:08
Ralf
Hi Nepumuk,
kann man das umgehen?
AW: Bild kopieren ohne select
06.04.2020 15:12:11
Nepumuk
Hallo Ralf,
ich mach das so:
Public Sub Beispiel()
    On Error Resume Next
    Do
        Tabelle1.Shapes(1).Copy
        If Err.Number = 0 Then Exit Do
        Err.Clear
    Loop
    On Error GoTo 0
End Sub

Gruß
Nepumuk
Anzeige
AW: Bild kopieren ohne select
07.04.2020 07:16:11
Ralf
Guten Morgen,
mit dieser Routine läuft das Macro länger als mit select. Leider.
Die Ansätze waren gut und laufen, nur Geschwindigkeit beim Kopieren der Bilder
hat es nicht gebracht. Mit der ursprünglichen select Anweisung läuft das Makro sicher durch.
Die anderen Versuche laufen nicht stabil. Vermutlich hat Excel mit dem Kopieren und Einfügen ein Problem und stolpert im Code.
Danke an Nepumuk für Deinen Einsatz!
Grüße Ralf
AW: Bild kopieren ohne select
07.04.2020 12:22:29
TomS
Hallo Allerseits,
habe leider das gleiche Problem.
Ich habe früher die Logos in den Blättern in der Kopfzeile über ein Diagramm erzeugt, in welches ich das Shapes Bild kopierte und temporär speicherte.
Seit dem neuen Excel funktioniert das nur noch mit F8 im Code, automatisch nicht mehr.
Es wird kein Bild mehr ins Diagramm eingefügt. Habe alles probiert: ne MsgBox als Codestopper, Application.rebuild, usw. .....
Gibts denn hierfür gar keine Lösung?
Tom
Anzeige
AW: Bild kopieren ohne select
07.04.2020 12:26:20
Nepumuk
Hallo Tom,
zeig mal den Code mit dem du exportierst (aber nicht nur die Export-Methode).
Gruß
Nepumuk
AW: Bild kopieren ohne select
07.04.2020 12:45:36
TomS
Hi Nepumuk,
Code - natürlich etwas rauskopiert

'Bild auswählen, diese sind als logo_xx Shapes abgespeichert
Set shBild = Sheets("Translation").Shapes("logo_" & ActiveWorkbook.Names("Sprache_Index"). _
RefersToRange.Value)
'Pfad festlegen temporär und Bild in Zwablage kopieren
shBild_Path = ThisWorkbook.Path & "\Test.jpg"
shBild.CopyPicture Appearance:=xlScreen, Format:=xlPicture
'Diagramm erzeugen in den Dims des Bildes ohne Rand
Dim chDiagramm As ChartObject
Set chDiagramm = ActiveSheet.ChartObjects.Add(0, 0, shBild.Width, shBild.Height)
chDiagramm.Border.LineStyle = xlNone
'Bild in Diagramm kopieren - das geht mit F8 automatisch wird es nicht ins Diagramm kopiert      _
chDiagramm.Chart.Paste
chDiagramm.Chart.Export Filename:=shBild_Path, FilterName:="jpg"
For Each blatt In ActiveWorkbook.Sheets
If blatt.Name  "DB" Then
blatt.PageSetup.RightHeaderPicture.Filename = shBild_Path
blatt.PageSetup.RightHeader = "&G"
End If
Next
chDiagramm.Delete
Kill shBild_Path

Anzeige
AW: Bild kopieren ohne select
07.04.2020 12:54:48
Nepumuk
Hallo Tom,
ergänze das Makro so:
'Bild in Diagramm kopieren - das geht mit F8 automatisch wird es nicht ins Diagramm kopiert
chDiagramm.Activate
chDiagramm.Chart.Paste
chDiagramm.Chart.Export Filename:=shBild_Path, FilterName:="jpg"

Gruß
Nepumuk
AW: Bild kopieren ohne select
07.04.2020 13:58:07
TomS
Hallo Nepumuk,
so geht es. Also einmal aktivieren oder wie bei Ralf selektieren.
Danke!!
Tom
Anzeige
AW: Bild kopieren ohne select
07.04.2020 12:33:27
Ralf
Hi Tom,
ich bin bis jetzt nicht weitergekommen.
Das einzige, was sauber durchläuft, aber mit select ist ist das hier:
Sub Bild_einfuegen(Bildname As String, Spalte As Integer, zelle)
Worksheets(1).Select
Worksheets(1).Shapes.Range(Array(Bildname)).Select
Selection.Copy
Worksheets(2).Select
Worksheets(2).Range(zelle & Spalte).Select
Worksheets(2).Paste
Selection.ShapeRange.IncrementLeft 3.5
Selection.ShapeRange.IncrementTop 3.5
End Sub
Lasse ich Worksheets(1).select weg und kopiere direkt ohne select in Zeile 2 geht das schon nicht mehr.
Mache ich das, was Nepumuk geschrieben habe funktioniert das mit left und Top nicht mehr. usw.
Ich habe schon so viel probiert. Eigenlich ist das von Nepumuk auch nicht falsch, aber der Code bleibt mal hängen, mal nicht, so wie Excel eben gerade Lust hat. Im Einzelschritt geht das, aber nicht wenn es automatisch laufen soll.
Grüße Ralf
Anzeige
AW: Bild kopieren ohne select
08.04.2020 08:50:22
Ralf
Hallo nochmal,
mich hat das Thema nicht in Ruhe gelassen. Jetzt, denke ich, habe ich eine Lösung.
Das Bild wird als Shape definiert und dann funktioniert es. Zumindest habe ich keinen Bug mehr gehabt.
So sieht das jetzt aus:
Sub Bild_einfuegen(Bildname As String, Spalte As Integer, zelle As String)
Dim Bild As Shape
Set Bild = Worksheets(1).Shapes(Bildname)
Bild.Copy
Worksheets(2).Range(Zelle & Spalte).Select
Worksheets(2).Paste
Selection.ShapeRange.IncrementLeft 3.5
Selection.ShapeRange.IncrementTop 3.5
End Sub

Ich hoffe das passt jetzt so.
Grüße Ralf
AW: Bild kopieren ohne select
08.04.2020 08:59:05
Ralf
Kommando zurück,
nach 20x probieren, immer mit der gleichen Datei, bekomme ich beim 21. mal jetzt die Fehlermeldung:
Die Methode'Copy' für das Objekt 'Shape' ist fehlgeschlagen. Ich schließe vorher jedesmal Excel.
Klicke ich auf Debuggen und anschließend sofort F5 läuft das Makro fertig, der Code stimmt also.
Ich bin Ratlos.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige