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

Export Excel-Bilder zu Word Textmarke

Forumthread: Export Excel-Bilder zu Word Textmarke

Export Excel-Bilder zu Word Textmarke
04.09.2024 21:52:43
Kinopio
Hallo zusammen,

ich beschäftige mich erstmals damit Werte und Bilder aus Excel in eine Word-Vorlage mit Textmarken (innerhalb einer Tabelle in Word) zu bringen.
Werte (Text, Zahlen) klappt soweit gut und ist auch nicht weiter wild.

Probleme habe ich damit, dass in einer Textmarke "B3" (ja, ich war zum testen nicht so kreativ mit der Namensvergabe) Bilder eingefügt werden sollen.
Das klappt grds. auch, ABER leider wird immer das nächste Bild über den vorherigen eingefügt. Das nächste Bild soll aber in der Textmarke unten eingefügt werden. Kann man das irgendwie vorgeben?

Kann mir jemand dabei helfen? Ich bin über jeden Hinweis dankbar.
Ach so: Warum INLINESHAPE weiß ich nicht, habe ich mir im Netz zusammengesucht und das klappt.



Option Explicit

Sub ExcelBilderZuWordTextmarke()
Dim wordApp As Word.Application
Dim wordDoc As Word.Document
Dim strWordFile As String
Dim objTemp As Object

strWordFile = ThisWorkbook.Path & "\TEST.docx"

'##### Word Datei #####
'Prüfen ob Datei Existiert, öffnen oder offene Datei nutzen
If Dir(strWordFile) > "" Then
Set objTemp = GetObject(, "Word.Application")
If objTemp Is Nothing Then
Set wordApp = CreateObject("Word.Application")
wordApp.Documents.Open strWordFile
wordApp.Visible = True
wordApp.Activate
wordApp.WindowState = 1
Else
Set wordApp = objTemp
If wordApp.Documents.Count > 0 Then
For Each wordDoc In wordApp.Documents
If StrComp(wordDoc.FullName, strWordFile, vbTextCompare) = 0 Then
'MsgBox "Datei ist bereits geöffnet !"
Set wordDoc = wordApp.Documents("TEST.docx")
Exit For
Else
Set wordDoc = wordApp.Documents.Open(strWordFile)
Exit For
End If
Next
End If
wordApp.Visible = True
wordApp.Activate
wordApp.WindowState = 1
wordDoc.Fields.Update
End If
Else
MsgBox "Datei existiert nicht :" & vbLf & vbLf & strWordFile, vbCritical + vbOKOnly, "Fehler "
Exit Sub
End If




'Excel Werte in Textmarken einfügen
wordDoc.Bookmarks("A1").Range.Text = ActiveSheet.Range("$B$1")
wordDoc.Bookmarks("A6").Range.Text = ActiveSheet.Range("$B$2")
wordDoc.Bookmarks("AA6").Range.Text = ActiveSheet.Range("$B$3")
wordDoc.Bookmarks("AAA6").Range.Text = ActiveSheet.Range("$B$4")

'##### Bilder aus Excel in Word einfügen #####
Dim shp As Shape, tmpshape As Object
Dim strTmp As String
For Each shp In ActiveSheet.Shapes
If shp.Type = msoPicture Then
'Temp Dateiname
strTmp = ThisWorkbook.Path & "\" & shp.Name & ".jpg"
'Bild Shape kopieren
shp.Copy
'Bild Shape in DAtei exportieren
Set tmpshape = ThisWorkbook.Worksheets("Temp").ChartObjects.Add(0, 0, shp.Width, shp.Height)
tmpshape.Chart.ChartArea.Select
tmpshape.Chart.Paste
tmpshape.Chart.Export Filename:=strTmp, FilterName:="JPG"
tmpshape.Delete





'Hier beginnt mein Problem und meine Unwissenheit
'Ziel: Bilder aus Excel in die TExtmarke einfügen
'ABER Bilder UNTEREINANDER.
With wordDoc.Bookmarks("B3").Range
.InlineShapes.AddPicture Filename:=strTmp, LinkToFile:=False, SaveWithDocument:=True
Kill strTmp 'Datei löschen
End With
End If
Next

End Sub


Vielen DANK und viele Grüße
Kinopio
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Also ich habe mit einer...
05.09.2024 00:01:23
Case
Moin, :-)

... leeren Worddatei getestet (eine Textmarke) UND mit einer Worddatei mit Tabelle (eine Textmarke in der Tabelle) und die Bilder werden immer untereinander angezeigt: ;-)

Option Explicit

Public Sub Main()
Dim objWord As Object
Dim objDoc As Object
Set objWord = CreateObject("Word.Application")
With objWord
Set objDoc = .Documents.Open("C:\Temp\Bild2.docx")
.Visible = True
ThisWorkbook.Worksheets("Tabelle1").Shapes("Grafik 4").Copy
objDoc.Bookmarks("Bild1").Range.Paste
ThisWorkbook.Worksheets("Tabelle1").Shapes("Grafik 12").Copy
objDoc.Bookmarks("Bild1").Range.Paste
End With
Set objDoc = Nothing
Set objWord = Nothing
End Sub


Servus
Case
Anzeige
AW: Also ich habe mit einer...
05.09.2024 07:23:15
Kinopio
Hallo Case,

danke für Deine Antwort.

Korrekt, die Bilder werden untereinander angezeigt. Mir geht es um die Reihenfolge der Bilder beim Einfügen.
Bezogen auf Dein Code:

"Grafik 4" wird eingefügt und dann wird "Grafik 12" DARÜBER eingefügt.
Ich hätte aber gern, dass das 2. Bild (Grafik 12) UNTER Grafik 4 eingefügt wird.

Sorry, wenn ich mich da missverständlich ausgedrückt habe.

VG und einen guten Start in den Tag allen
Kinopio
Anzeige
Dann lass doch die...
05.09.2024 07:54:18
Case
Moin, :-)

... Schleife so laufen: ;-)

Option Explicit

Public Sub Main()
Dim objWord As Object
Dim objDoc As Object
Dim lngTMP As Long
Set objWord = CreateObject("Word.Application")
With objWord
Set objDoc = .Documents.Open("C:\Temp\Bild1.docx")
.Visible = True
With ThisWorkbook.Worksheets("Tabelle1")
For lngTMP = .Shapes.Count To 1 Step -1
.Shapes(lngTMP).Copy
objDoc.Bookmarks("Bild1").Range.Paste
Next lngTMP
End With
End With
Set objDoc = Nothing
Set objWord = Nothing
End Sub


Servus
Case
Anzeige
[GELÖST]: Dann lass doch die...
09.09.2024 12:42:31
Kinopio
Hallo Case,

vielen Dank!!! Manchmal ist es so einfach, aber man denkt zu kompliziert.
Die Schleife hat mich an Ziel geführt.

VG
Kinopio
;

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