Kann mir bitte jemand diesen Code auf Word anpassen? Ich bin total schlecht wenn es um Word Vba geht, aber aufgrund der Formatierung muss das in Word geschehen.
Code:
On Error GoTo Lösung2
v = Zoeller For I = 3 To Rows.Count If Cells(I, 1).Value = v Then
Set zelle = Tabelle1.Cells(CStr(I), 1)
On Error GoTo Fehler Set Pic = Tabelle1.Pictures.Insert("\\svprint01\Briefe\Unterschriften\Usw_zoeller.jpg") Pic.Top = zelle.Top Pic.Left = zelle.Left Pic.Name = "BildVomBuch"
Exit Sub End If Next I
Es gibt hier mehrere Lösungen, daher der On Error GoTo, aber das ist weniger relevant.
Innerhalb des Word Dokuments gibt es 3 verschiedene Platzhalter, für die es jeweils eine eigene Prozedur gibt. Sprich wenn dort steht #Bild1# Dann soll der Code für Bild1 ein bestimmtes Bild an der Stelle einfügen.
In Excel funktioniert das super, nur weiß ich leider nicht wie ich den Code in Word anwenden könnte.
06.02.2019, 13:23 (Dieser Beitrag wurde zuletzt bearbeitet: 06.02.2019, 13:23 von mumpel.)
Hallo!
In Word ist das etwas komplizierter. Am Einfachsten wäre es wenn man eine Textmarke (soetwas ähnliches wie eine Sprungmarke in HTML) setzt, an dessen Stelle dann das Bild eingefügt wird.
danke für deine Antwort, allerdings habe ich 1400 Dateien. Diese muss ich per Hand Formatieren + Bild einfügen und in eine HTML umwandeln. Daher habe ich das Via Excel Vba gelöst. Allerdings ist die Formatierung ein großes Problem. Ich muss die fertige Datei noch in ein externes Programm kopieren, über Excel sieht das nicht gut aus. Über Word ist die Formatierung allerdings perfekt.
Und da man ja Text und Bild nicht gleichzeitig kopieren kann (aus Excel), muss ich das Bild in Word einfügen.
Der Aufbau der Dateien (mit dem Platzhalter) ist leider schon vorgegeben. Es wäre zu viel arbeit in allen 1400 Dateien diesen auszutauschen.
Falls du dennoch eine Idee haben solltest wie ich das umsetzen könnte, wäre ich mehr als froh darüber.
Wo das Bild eingefügt werden sollte sezt du das Feld {INCLUDEPICTURE } Die Name des Bildes setztdu als {DOCVARIABLE Bild1}
Das Ergebnis: {INCLUDEPICTURE {DOCVARIABLE Bild1} }
Kann man sehen mit wechseltaste Alt-F9.
Dan ein 'tiny' Makro:
Code:
Sub M_snb() ThisDocument.Variables("bild1") = " <br/>[i]Dateiupload bitte im Forum! So geht es:<a href="thread-326.html"> Klick mich!</a>[/i]<br/>" ThisDocument.Fields.Update End Sub
Dieses verschachtelte Feld konnte ich per Hand nachvollziehen, aber nicht per VBA.
Wenn ich es richtig verstanden habe, möchte der Fragesteller in vielen vorhandenen Dateien dieser Änderung vornehmen, müßte also an einer definierten Stelle diesen Code (per VBA) eintragen.
Eine Lösung ist aber sicher auch von allgemeinem Interesse.
06.02.2019, 19:55 (Dieser Beitrag wurde zuletzt bearbeitet: 06.02.2019, 19:55 von snb.)
z.B.
Code:
Sub M_snb() With ThisDocument .Content = String(50, vbCr) .Fields.Add .Paragraphs(30).Range, 67, "", False .Fields(1).Code.Characters(.Fields(1).Code.Characters.Count).Select .Fields.Add Selection.Range, 64, "Bild", 0 end with End Sub
oder
Code:
Sub M_snb() With ThisDocument .Content = String(50, vbCr) .Fields.Add ThisDocument.Paragraphs(30).Range, 67, "", False .Fields(1).Code.Select Selection.Collapse 0 .Fields.Add Selection.Range, 64, "Bild", 0 end with End Sub
06.02.2019, 21:27 (Dieser Beitrag wurde zuletzt bearbeitet: 06.02.2019, 21:27 von snb.)
Etwas 'schöner' :
Code:
Sub M_snb() with ThisDocument .Content = String(50, vbCr) .Fields.Add(ThisDocument.Paragraphs(30).Range, 67, "", False).Code.Select Selection.Collapse 0 .Fields.Add Selection.Range, 64, "Bild1", 0 end with End Sub