Word Feldfunktionen kopieren und als 'Text' einfügen

Hallo,

bei der Beantwortung von laetas Frage unten bin ich auf ein Problem gestoßen.

Wie kann ich bei angezeigten (ALT + F9) Feldfunktionen in Word, diese quasi als Text kopieren und beispielsweise hier wieder als Text reinkopieren… Also man soll die Funktionen sehen.

Wenn ich das versuche wird mir nicht die Feldfunktion eingefügt sondern das Ergebnis.In diesem Falle dann die Anrede „Sehr geehrter Herr Dr. Dünnbier“,

Ich Will aber das man IF{Anrede = „Herr“… usw. sieht.

Ich hoffe ich habe mich halbwegs verständlich ausgedrückt. :wink:

Gruß
Fronk

Moin,
musst du Rechtsklick auf das Feld, Feld bearbeiten, Feldfunktionen. Da sollte es normaler weise stehen.

nein, funktioniert nicht. Die Funktionen werden, wie ich schon schrieb angezeigt, aber beim Kopieren sieht es dann so aus:

Sehr geehrter Herr Prof. Dr. Schuinsland, sehr geehrte Frau Dame,

Gruß
Fronk

Moin,
ich hab vielleicht noch eine tollkühne, mutige und verrückte Idee zugleich. Versuch doch mal Die Feldfunktion im Editor abzutippen, und diese dann zu kopieren. Vielleicht funktioniert es ja. Schreib wenn nicht, oder wenn doch.

Hi Whyper,

DAS funktioniert natürlich, aber wenn man wirklich umfangreiche Feldfunktionen hat ist das eher… sagen wir mühsam. :wink:

Gruß
Fronk

Wie kann ich bei angezeigten (ALT + F9) Feldfunktionen in
Word, diese quasi als Text kopieren und beispielsweise hier
wieder als Text reinkopieren… Also man soll die Funktionen
sehen.

vorab, ginge auch Vba? In dem Fall logischerweise Word-Vba.
Mein Ziel wäre dann in der Doc kopierste das mit Strg+c.
Dann fügste es in w-w-w Strg+v ein.
Das wäre klar die einfachste Methode aber die Zwischenablage
ist teilweise nicht so einfach zu handeln wie in der Hilfe von Vba
beschrieben.

Macht mir aber nix, mir schwebt zumindest noch ein anderer Weg
vor der auch funktionieren kann.

Dein Anteil daran ist recht gering, in der Hauptsache mußt du
den Code später auf Herz und Nieren testen.
Jetzt bitte ich dich nur darum, eine Feldfunktion einfügen kann ich,
mir zu schreiben was ich da reinschreiben soll.

Falls nötig ist es für mich ein Klacks eine xls zu basteln wo
wie in deinem Beispiel ein Titel Anrede ist.
Und aus meiner doc ein sogannntes Hauptdokument zu machen.

Ausnahmsweise bitte keine fertigen Dateien schicken, hatte massig
Probleme mit Laettas Dateien. Nein, nein, sie kann da Null,
liegt sehr eindeutig an mir :frowning:

So ein Mist, ich hatte mir doch fest vorgenommen mich kürzer zu
fassen *fluch* :smile:

Gruß
Reinhard

Vba-Losung Word Feldfunktionen kopieren und als ‚Text‘ einfügen
Hallo Fronk und Interessierte,

http://web.archive.org/web/20070416134847/http://myp…

Im Link steht alles, der Code, notwendige Infos usw.
Nachstehend ist der Code vom Link leicht gekürzt.

Gruß
Reinhard

Option Explicit

Sub FeldcodeKopieren()
'Verweis auf MS Forms 2.0... setzen!
Dim oData As Object, savEnv As Boolean, strS As String
Const myTitel As String = "Feldcode kopieren"
Const myText As String = "Es ist kein Feld markiert."
Set oData = New DataObject
If Selection.Range.Fields.Count = 0 Then
 MsgBox myText, vbInformation, myTitel
 Exit Sub
End If
savEnv = ActiveWindow.View.ShowFieldCodes
ActiveWindow.View.ShowFieldCodes = True
strS = Replace(Replace(Selection.Range.Text, Chr(19), Chr(123)), Chr(21), Chr(125))
oData.SetText strS
oData.PutInClipboard
ActiveWindow.View.ShowFieldCodes = savEnv
End Sub

Hallo Fronk,

nachstehend Code von mir.
Code listet nach Strg+v alle Feldfunktionen auf.
Getestet auf Word 2000.
Getestet mit sichtbaren Feldfunktionen (Alt+F9) und unsichtbaren
(nochmal Alt+F9).

Gruß
Reinhard

Sub tt()
Dim oData As Object, N As Integer, Formeln As String
Set oData = New DataObject
With ActiveDocument
 For N = 1 To .Fields.Count
 Formeln = Formeln & vbLf & .Fields(N).Code.Text
 Next N
 Formeln = Replace(Replace(Formeln, Chr(19), Chr(123)), Chr(21), Chr(125))
End With
oData.SetText Formeln
oData.PutInClipboard
End Sub

Moin,
es ist aber Funktion nabel. Und das ist das Hauptkriterium^^.

Moin,
es ist aber Funktion nabel. Und das ist das Hauptkriterium^^.

findest Du? ok, bleiben wir also dabei… das würde ja m. E. auch bedeuten dass ich meinen Serienbrief mit, sagen wir 1000 Adressen, auf eine Schreibmaschine tippe… das wäre genauso „Funktion nabel“, ich hofffe Du verstehst worauf ich hinaus will. :wink:

Gruß
Fronk

Hi Reinhard,

ach so, sorry hatte ich gar nicht mehr so auf dem Schirm vor allem weil ich diese VBA Lösung noch nicht getestet habe. mach ich aber noch.

Gruß
Fronk

hey Reinhard,

leider funktioniert der VBA-Code bei mir nicht. Bin aber auch totaler VBAnalphabet.

Meldung

Fehler beim Kompilieren: benutzerdefinierter Typ nicht definiert.

gemeint ist: die Zeile wo drinne steht:

Set oData = New DataObject

ich verwende Word 2007 und da kann ich leider nicht so vorgehen wie in der verlinkten Seite vorgesehen.

Gruß
Fronk

Nachtrag zu Feldfunktion kopieren
hier ist noch die Datei aus der ich die Feldfunktionen per Copy & Paste übertragen wollte:

http://www.file-upload.net/download-8042820/Briefvor…

das war das Ding für laetta08… Du erinnerst Dich? :wink:

Vielleicht kannst Du versuchen Deinen code in die word Datei einzufügen und nochmal hochzuladen. Ich bin anscheinend zu doof! :wink:

Gruß
Fronk

Vba: ab Word 2007 Makro als Symbol in Schnellzugriffleiste
Hallo Fronk,

Fehler beim Kompilieren: benutzerdefinierter Typ nicht
definiert.
Set oData = New DataObject

der Fehler weist daraufhin daß der Verweis nicht gesetzt wurde.

ich verwende Word 2007 und da kann ich leider nicht so
vorgehen wie in der verlinkten Seite vorgesehen.

Es wird vorausgesetzt der Code steht in einem Standardmodul der
Normal (.dotm)

http://www.pic-upload.de/view-20720629/kwFronk1.jpg…

wie im obigen Bild zu erkennen, klicke auf das kleine Symbol rechts neben
der „Symbolleiste für den Schnellzugriff“. Im erscheinenden Fenster wähle dann
„weitere Befehle“ aus und das nächste Bild erscheint als Fenster.

http://www.pic-upload.de/view-20720646/kwFronk2.jpg…

Dort wählst du oben in dem Feld „Makro“ aus. Makros werden aufgelistet,
wähle das entsprechende aus , dann "Hinzufügen.
Wie ersichtlich kannst du im Fenster noch auswählen ob das Makro als
Symbol in der Leiste bei allen Word-dateien sichtbar ist oder nur in der grad
aktuellen doc.
Auch ob du es zusätzlich mit tastenkombination starten willst.

Wenn du das Makro hinzugefügt hast erscheint rechts unten der
Button „Ändern“. Damit kannst du dir ein Symbol aussuchen.

Gruß
Reinhard

Moin Reinhard,

Fehler beim Kompilieren: benutzerdefinierter Typ nicht
definiert.
Set oData = New DataObject

der Fehler weist daraufhin daß der Verweis nicht gesetzt
wurde.

ähm? wie gesagt ich bin VBAnalphabet!

Es wird vorausgesetzt der Code steht in einem Standardmodul
der
Normal (.dotm)

yepp, ist als Modul vorhanden, die Symbolleiste habe ich auch angepasst. aber was muss ich denn tun um diesen Kompilierungsfehler zu beseitigen. Es funktioniert leider nicht.

ich habe eine Datei mal hochgeladen… ich hoffe dann wird das ersichtlich.

http://www.file-upload.net/download-8076320/Felder-b…

Gruß
Fronk

Hallo Fronk,

Fehler beim Kompilieren: benutzerdefinierter Typ nicht
definiert.
Set oData = New DataObject

der Fehler weist daraufhin daß der Verweis nicht gesetzt
wurde.

ähm? wie gesagt ich bin VBAnalphabet!

na, das passt doch, ich bin Word-DAU *grien*

Zu Verweisen. (gilt für Word, Excel u.v.m. Vba-Programmen).

Nehmen wir mal ein Beispiel. Es ist möglich in Word-Vba ein makro zu schreiben was auf Excel zugreift. Standardmäßig kennt aber Word-Vba keine Excel-Vba-Befehle.
Will man nun in Excel-Vba ein dortiges Tabellenblatt referenzieren, also ansprechen so
lautet die Codezeile in etwa so …Worksheets(„Tabelle1“)…

Das wird aber in einem Word-Makro so nicht funktionieren denn Word-Vba kennt den Begriff „Worksheet“ nicht. Also muß man wie auch im Link beschrieben im VB-Editor (Alt+F11) oben auf Extras klicken, dann auf Verweise.
Dort sucht man dann den Verweis auf Microsoft Excel X.0 Object Library, aktiviert das Häkchen. Dann klappt auch der Code.

Das X steht für die Versionsnummer, 2000 = 9.0, 2007 = 12.0 usw.
In Word-Vba ist eine Worddatei ein „Document“. Greift man nun umgekehrt mit Excel-Vba auf eine doc zu geht eine Codezeile mit z.B. …ThisDocument… genauso schief bis man dann in Word den Verweis auf Microsoft Word X.0 Object Library setzt.

In dem Code um den es geht kennt Word-Vba „DataObject“ nicht. Analog zum eben gesagten muß man da den Verweis auf Microsoft Forms 2.0 Object Library setzen.
Bei diesem speziellen Verweis kannste dir sparen in der Liste die bei Extras—Verweise nach dem Verweis zu suchen.
Gehe einfach auf Einfügen—Userform. Dadurch wird der richtige Verweis auch gesetzt.

Es wird vorausgesetzt der Code steht in einem Standardmodul
der
Normal (.dotm)

aber was muss ich denn tun um diesen
Kompilierungsfehler zu beseitigen. Es funktioniert leider
nicht.
ich habe eine Datei mal hochgeladen… ich hoffe dann wird das
ersichtlich.

Naja, von der Datei hat man nix, es ist eine .docx. da sind keine Makros drin.
.docx = doc ohne Makros, docm = doc mit Makros.
Ich kann also weder Makros überprüfen. Verweis ist nicht gesetzt.

Gruß
Reinhard

http://www.file-upload.net/download-8076320/Felder-b…

Hi Reinhard,

sorry, ist ein paar Tage her. aber hier nochmal zum Thema:

Naja, von der Datei hat man nix, es ist eine .docx. da sind
keine Makros drin.
.docx = doc ohne Makros, docm = doc mit Makros.
Ich kann also weder Makros überprüfen. Verweis ist nicht
gesetzt.

http://www.file-upload.net/download-8101981/Felder-b…

vielleicht erschließt sich Dir ja was. :wink:

Gruß
Fronk