Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Bilder an bestimmeter Stelle in VBA einfügen

Bilder an bestimmeter Stelle in VBA einfügen
11.09.2024 17:22:57
Theo
Hallo zusammen,

heute bin ich mir wieder mal nicht sicher ob Excel oder vielleicht doch mein Gehirn einen Bug hat. Mir geht es um das Sub InsertPictureToRange, das andere Macro simuliert nur den Aufruf. Die Idee ist nacheinander Bilder aus unterschiedlichen Links in einen bestimmten Bereich einzufügen.

In meinem "echten" Macro funktioniert das (speziell wenn ich das Debugge) wie erwartet. Läuft das Macro "unbeaufsichtitg" wird jedes Bild immer ein stück zu hoch eingefügt.
Je mehr Durchläufe stattfinden, desto mehr verschiebt sich die Position.
Der Range wird korrekt ermittelt, denn ich mache in meinem "echten" Makro sogar noch einen Rahmen um den Einfügebereich.

Ich habe auch schon propbiert eine kurze Pause nach dem Insert einzufügen, aber das macht auch keinen wirklichen Unterschied.
Hat jemand eine bessere Idee?

Danke

Theo


Sub BilderNacheinanderEinfügen()

Dim EinfuegeRng As Range
Dim Nummernlink As String
Dim HausNummer As Integer

Dim i As Long
Dim wsTest As Worksheet

Set wsTest = ActiveSheet

For i = 10 To 1000 Step 10
Set EinfuegeRng = wsTest.Range(wsTest.Cells(i + 2, 2), wsTest.Cells(i + 8, 4))
HausNummer = i / 10
wsTest.Range("A" & i).Value = "Hausnummer " & HausNummer
Nummernlink = "https://www.xyz.de/No/" & HausNummer
InsertPictureToRange Nummernlink, EinfuegeRng
Next i

Set EinfuegeRng = Nothing
Set wsTest = Nothing

End Sub
Sub InsertPictureToRange(PicLink As String, PasteRng As Range)
Dim PreView As Picture
Dim ws As Worksheet

'----------------------------------------------------------------------------------------------
'--- Füge Bild in PasteRng ein
'----------------------------------------------------------------------------------------------
Set ws = PasteRng.Worksheet

On Error Resume Next
Set PreView = ws.Pictures.Insert(PicLink)
On Error GoTo 0

'----------------------------------------------------------------------------------------------
'--- Höhe und Position Festlegen
'----------------------------------------------------------------------------------------------
If Not PreView Is Nothing Then
With PreView
.ShapeRange.LockAspectRatio = msoTrue
.Height = 0.98 * PasteRng.Height
.Top = PasteRng.Top + 0.01 * PasteRng.Height
.Left = PasteRng.Left + 0.01 * PasteRng.Width
.Placement = xlMoveAndSize
End With
End If

Set ws = Nothing
Set PreView = Nothing

End Sub
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bilder an bestimmeter Stelle in VBA einfügen
11.09.2024 17:47:16
Beverly
Hi Theo,

versuche es mal, denn du nach der Codezeile

        InsertPictureToRange Nummernlink, EinfuegeRng


noch diese Zeile ergänzt:

         Application.EnableEvents = True



Vielleicht hilft das ja schon.

Bis später
Karin

Link zur Homepage: https://excel-inn.de/
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige