Clever-Excel-Forum

Normale Version: Excel Code auf Word anpassen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
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.

ich wäre echt super dankbar!
Ohne Word Datei ?

Statt 'rows' in Excel, was sollte das sein Word ?

Wie sollte das Endergebnis aussehen ?

Zauberen kann ich, hellsehen nicht.
Also im Anhang mal eine Beispieldatei,

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.

Mfg
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.

Gruß, René
Hallo mumpel,

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.

MFG
Das ist in Word viel einfacher als in Excel.

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

Fertig.
@snb

wieder einmal ein interessanter Ansatz!

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.

mfg
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
@snb

Vielen Dank!
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
Seiten: 1 2