Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1716to1720
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
aus Excel in Worddokument Textfeld ändern
24.10.2019 18:03:36
Peter
Hallo,
ich habe eine Exceldatei und ein Worddokument.
Zwischen den beiden Elementen besteht eine Verknüpfung.
Wenn ich nun den Ordner mit diesen Dateien kopiere und umbenenne, ist die Verknüpfung nicht mehr richtig.
Wie kann ich die Felder in Word mittels Excel suchen und den Pfad und Dateinamen ändern.
Besten Dank für eure Hilfe.
Gruss
Peter

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: aus Excel in Worddokument Textfeld ändern
25.10.2019 10:06:37
Peter
Hallo,
ich habe zwischenzeitlich in Word ein Makro aufgezeichnet, welches den Pfad ändert:
<pre>Sub Test_Feld_ändern2()
If ActiveWindow.View.SplitSpecial = wdPaneNone Then
ActiveWindow.ActivePane.View.Type = wdNormalView
Else
ActiveWindow.View.Type = wdNormalView
End If
Selection.WholeStory
ActiveWindow.View.ShowFieldCodes = Not ActiveWindow.View.ShowFieldCodes
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "C:\\Users\\xxx\\Desktop\\Test1\\Mappe1.xlsm"
.Replacement.Text = "C:\\Users\\xxx\\Desktop\\Test2\\Mappe2.xlsm"
.Forward = True
.Wrap = wdFindAsk
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute
With Selection
If .Find.Forward = True Then
.Collapse Direction:=wdCollapseStart
Else
.Collapse Direction:=wdCollapseEnd
End If
.Find.Execute Replace:=wdReplaceOne
If .Find.Forward = True Then
.Collapse Direction:=wdCollapseEnd
Else
.Collapse Direction:=wdCollapseStart
End If
.Find.Execute
End With
ActiveWindow.View.ShowFieldCodes = Not ActiveWindow.View.ShowFieldCodes
If ActiveWindow.View.SplitSpecial = wdPaneNone Then
ActiveWindow.ActivePane.View.Type = wdPrintView
Else
ActiveWindow.View.Type = wdPrintView
End If
End Sub</pre>
Die beiden Zeilen:
.Text = "C:\\Users\\xxx\\Desktop\\Test1\\Mappe1.xlsm"
.Replacement.Text = "C:\\Users\\xxx\\Desktop\\Test2\\Mappe2.xlsm"
möchte ich ersetzten durch:
=Excel UF1.TextBox2
=Excel UF1.TextBox4
Könnt ihr mir bitte hierbei helfen.
Noch lieber wäre es mir, wenn anstatt diesem Makro in Word das Makro aus Excel heraus durchgeführt würde.
Besten Dank
Gruss
Peter
Anzeige
Excelmakro in Worddokument
25.10.2019 11:31:55
mmat
Hallo Peter,
so sollte das funktionieren (ungetestet)
Private Sub FernsteuerungWord()
Dim AppWord As Object
Set AppWord = CreateObject("Word.application")
With AppWord
.Visible = True
.WindowState = xlMaximized
.documents.Open "Dateiname"
'--- Hier kommt dein Dings ----------------------
Test_Feld_ändern2
.Activedocument.Save
.Activedocument.Close
End With
Set AppWord = Nothing
End Sub

vg, MM
AW: Excelmakro in Worddokument
25.10.2019 11:49:42
mmat
Hallo Peter,
sorry, ganz so einfach ist es doch nicht.
Jeder Wordbefehl muss im Excelmakro im Kontext des AppWord-Objekts aufgerufen werden.
Also, aus "Selection.WholeStory" wird dann "AppWord.Selection.WholeStory"
vg, MM
Anzeige
AW: Excelmakro in Worddokument
25.10.2019 15:50:06
Peter
Hallo MM,
leider komme ich damit nicht klar.
Das Ausführen des Makros in Word aus Excel heraus habe ich.
Da aber in dem WordMakro nach selection.find zwei Pfad-Bereiche angegeben sind, welche aus einer Exeltabelle bzw. UF-Textbox stammen und somit variabel sind, möchte ich das ganze direkt aus Excel heraus ausführen.
Habe jedoch keine wirklichen Plan. Kannst Du mir hierbei bitte helfen.
Gruss
Peter
AW: Excelmakro in Worddokument
25.10.2019 17:18:59
mmat
Hallo,
versuch das mal, die drei Variablen hab ich der Einfachheit halber in die ersten 3 Zellen des aktuellen Blatts gepackt. Leider kann ich nicht viel testen.
Private Sub FernsteuerungWord()
Dim AppWord As Object, WordDokument As String, SucheNach As String, ErsetzeDurch As String
WordDokument = Cells(1, 1) 'A1
SucheNach = Cells(2, 1)    'A2
ErsetzeDurch = Cells(3, 1) 'A3
Set AppWord = CreateObject("Word.application")
With AppWord
.Visible = True
.WindowState = xlMaximized
.documents.Open worddokument ' Name der Worddaten
'hier kommt dein aufgezeichnetes Dings (leicht abgewandelt)
If .ActiveWindow.View.SplitSpecial = 0 Then 'wdPaneNone
.ActiveWindow.ActivePane.View.Type = 1 'wdNormalView
Else
.ActiveWindow.View.Type = 1  '.wdNormalView
End If
.ActiveWindow.View.ShowFieldCodes = True
.Selection.HomeKey 6 'wdStory
.Selection.Find.ClearFormatting
.Selection.Find.Replacement.ClearFormatting
.Selection.Find.Execute FindText:=SucheNach, ReplaceWith:=ErsetzeDurch, Replace:=2
.ActiveWindow.View.ShowFieldCodes = False
If .ActiveWindow.View.SplitSpecial = 0 Then 'wdPaneNone
.ActiveWindow.ActivePane.View.Type = 3
Else
.ActiveWindow.View.Type = 3 'wdPrintView
End If
' der rest von mir
.Activedocument.Save
.Activedocument.Close
End With
ThisWorkbook.Activate
Set AppWord = Nothing
End Sub
vg, MM
Anzeige
AW: Excelmakro in Worddokument
26.10.2019 11:27:21
Peter
Hallo MM,
bin gerade dabei Deinen Vorschlag zu prüfen. Besten Dank hierfür.
Es sind zwei Fehler vorhanden.
1. .Selection.HomeKey 6 'wdStory - wird nicht ausgeführt
2. .Selection.Find.Execute FindText:=SucheNach, ReplaceWith:=ErsetzeDurch, Replace:=2 - wird nicht ausgeführt.
zu 1. habe ich eine Lösung gefunden:
Dim varText 'benötigt für Auswahl gesamter Text
.Selection.WholeStory
varText = .Selection
Cells(Rows.Count, 1).End(xlUp).Offset(1, 0) = varText
zu 2. fehlt mir noch eine Lösung.
Vielleicht fällt Dir dazu noch etwas ein.
Gruss
Peter
Anzeige
AW: Excelmakro in Worddokument i.O.
26.10.2019 13:22:27
Peter
Hallo MM,
habe den Fehler gefunden. Lag an falscher Dateiendung.
Private Sub FernsteuerungWord()
Dim AppWord As Object, WordDokument As String, SucheNach As String, ErsetzeDurch As String
With Worksheets("Tabelle3")
WordDokument = .Cells(1, 1) 'A1
SucheNach = .Cells(2, 1)    'A2
ErsetzeDurch = .Cells(3, 1) 'A3
End With
'C:\Users\Peter\Desktop\Test2
Set AppWord = CreateObject("Word.application")
With AppWord
.Visible = True
.WindowState = xlMaximized
.documents.Open WordDokument ' Name der Worddaten
'hier kommt dein aufgezeichnetes Dings (leicht abgewandelt)
If .ActiveWindow.View.SplitSpecial = 0 Then 'wdPaneNone
.ActiveWindow.ActivePane.View.Type = 1 'wdNormalView
Else
.ActiveWindow.View.Type = 1  '.wdNormalView
End If
.ActiveWindow.View.ShowFieldCodes = True
.Selection.HomeKey 6 'wdStory                'Fehler
.Selection.Find.ClearFormatting
.Selection.Find.Replacement.ClearFormatting
.Selection.Find.Execute FindText:=SucheNach, ReplaceWith:=ErsetzeDurch, Replace:=2   'Fehler
.ActiveWindow.View.ShowFieldCodes = False
If .ActiveWindow.View.SplitSpecial = 0 Then 'wdPaneNone
.ActiveWindow.ActivePane.View.Type = 3
Else
.ActiveWindow.View.Type = 3 'wdPrintView
End If
'Worddokument mit speichern schliessen
AppWord.documents.Close True
If AppWord.documents.Count = 0 Then
AppWord.Quit
End If
End With
ThisWorkbook.Activate
Set AppWord = Nothing
End Sub

Nochmals besten Dank für Deine Hilfe und ein schönes Wochenenden.
Gruss
Peter
Hier der richtige Code:
Anzeige
Danke für die Rückmeldung o. w. T.
28.10.2019 13:32:26
mmat

273 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige