Visual Basic Forum

Visual Basic Forum
für VB6 und VB.NET Programmierer
 
RegistrierenRegistrieren  LoginLogin
Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB6] Fragen - Antworten
Autor
Nachricht
WhiteGloves
Newbie
Newbie

Anmeldedatum: 02.06.2008
Beiträge: 7

Word, Tabelle in der Kopfzeile auslesen
Verfasst am: 04.07.2008, 11:51

** Edit **

Hallo,

mein Problem hat sich geändert, da ich gemerkt habe das ich auf dem falschen Weg bin.


Ich muss ein Word Dokument öffnen und den gesamten Inhalt der Kopfzeile auslesen und in die Kopfzeile eines anderen Dokumentes einfügen.

In der (auszulesenden) Kopfzeile befindet sich eine Tabelle welche einige dieser "Felder" enthält.

Kopiere ich nun den Inhalt in die andere Kopfzeile, ist erstens die in der Orginalen enthaltene Tabelle verschwunden, sowie die Felder ebenfalls, bzw die Feldbezeichnung bleibt vorhanden, aber es ist eben kein Feld mehr....


Ich hab auch leider keinen Plan wie ich dies Problem lösen kann.


Ich arbeite übrigens mit VB 6.0 und vermute das mein Problem sich mit VBA besser Lösen ließe, will dies allerdings nur als wirklich letze Ausweichmöglichkeit verwenden !

Hier ist mein momentaner Code:
Visual Basic: [code]'Hole den Inhalt der Kopfzeile der Vorlage (Orginal Dokument)
Set objWordVorlage = CreateObject("Word.Application")
objWordVorlage.Documents.Open "L Gesamt.doc"
Set KopfzeileVorlage = objWordVorlage.ActiveDocument.Sections(1).Headers(wdHeaderFooterPrimary).Range

' KopfzeileVorlage.Text Hier hab ich ja jetzt den Inhalt der Kopfzeile

Set objWord = CreateObject("Word.Application")
objWord.Documents.Open "svorschlag.doc"
Set Kopfzeile = objWord.ActiveDocument.Sections(1).Headers(wdHeaderFooterPrimary).Range

'jetzt einfach kopieren...
Kopfzeile.Text = KopfzeileVorlage.Text[/code]
 
WhiteGloves
Newbie
Newbie

Anmeldedatum: 02.06.2008
Beiträge: 7


Verfasst am: 07.07.2008, 10:38

** Edit, Problem gelößt... Siehe unten !
___________________________

Inzwischen hat sich mein Quelltext etwas verändert, versuche die Sache mit der Kopfzeile nun anders anzugehen...

Der Weg scheint mir der richtige zu sein, allerdings tut sich bei der Ausführung nichts, also das Dokument sieht nach wie vor unverändert aus...

Visual Basic: [code]'Die Vorlage Datei öffnen
Set objWordVorlage = CreateObject("Word.Application")
objWordVorlage.Documents.Open "C:Dokumente und EinstellungenxxxDesktopFOB CL Gesamt.cqs"
Set adocVorlage = objWordVorlage.ActiveDocument
adocVorlage.Activate
'Suche die Kopfzeile
objWordVorlage.ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
'Kopiere dessen Inhalt (Strg A, Strg C)
Selection.WholeStory
Selection.Copy



'Jetzt die OriginalDatei öffnen
Set objWord = CreateObject("Word.Application")
objWord.Documents.Open "C:Dokumente und EinstellungenxxxDesktopFOB 002-01 Verzeichnis gültiger VA.doc"
Set adoc = objWord.ActiveDocument
adoc.Activate

'Suche Kopfzeile
objWord.ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
'Markieren (Strg A)
Selection.WholeStory
'Löschen
Selection.Delete
'Kopfzeile der Vortlage einfügen
Selection.Paste


adoc.Save
adoc.Close
adocVorlage.Close
'Objekt Referenzen lösen
Set objWordVorlage = Nothing
Set objWord = Nothing[/code]


_______________________

Für alle die auch das selbe Problem wie ich haben und dies hier lesen,...

Folgende Funktion fügt die Kopfzeile / Fusszeile eines Dokuments in das andere ein....

Visual Basic: [code]'Fügt die Kopfzeile/Fusszeile von DestFile in SrcFile ein
Function Tausche_HeaderFooter(ByVal DestFile As String, ByVal SrcFile As String)
Dim ADoc As Object 'Ziel
Dim BDoc As Object 'Quelle
Dim rngKopf As Word.Range 'Quelle
Dim rngZiel As Word.Range 'Ziel

Dim rngFoot As Word.Range 'Quelle
Dim rngFootZiel As Word.Range 'Ziel

Set ADoc = CreateObject("Word.Application")
Set BDoc = CreateObject("Word.Application")


'Quelldatei öffnen
Set BDoc = Documents.Open(SrcFile)
Set BDoc = ActiveDocument
'Hole Kopfzeile
Set rngKopf = BDoc.Sections(1).Headers(wdHeaderFooterPrimary).Range.FormattedText
Set rngFoot = BDoc.Sections(1).Footers(wdHeaderFooterPrimary).Range.FormattedText

'Zieldatei öffnen
Set ADoc = Documents.Open(DestFile)
Set ADoc = ActiveDocument
If ADoc.HasPassword Then
ADoc.Unprotect "ok"
End If

'Ziel Kopfzeile
Set rngZiel = ADoc.Sections(1).Headers(wdHeaderFooterPrimary).Range
Set rngFootZiel = ADoc.Sections(1).Footers(wdHeaderFooterPrimary).Range

'rngZiel.Delete
rngZiel.Text = " "
rngFootZiel = " "


'Die Kopfzeile ins Ziel Dokument einfügen
rngZiel.Collapse wdCollapseStart
rngZiel.FormattedText = rngKopf.FormattedText

'Die Fußzeile ins Ziel Dokument einfügen
rngFootZiel.Collapse wdCollapseStart
rngFootZiel.FormattedText = rngFoot.FormattedText

ADoc.Protect wdAllowOnlyFormFields, False, "ok"

ADoc.Save
ADoc.Close
BDoc.Close

Set ADoc = Nothing
Set BDoc = Nothing
End Function[/code]
 
Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB6] Fragen - Antworten

Tags: kopfzeile auslesen, word

 
 Verwandte Themen   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Wichtig: [Ebook] jetzt lerne ich Visual Basic 6 5069 02.06.2010, 13:55
Keine neuen Beiträge Miceosoft Visual Basic 6.0 Einsteiger Kurs? 1191 17.02.2007, 21:01
Keine neuen Beiträge SUCHE MICROSOFT VISUAL BASIC! 945 12.02.2007, 21:54
Keine neuen Beiträge Microsoft Visual Basic 1276 28.01.2007, 00:59
Keine neuen Beiträge Visual Basic.. Version?? 1232 22.01.2007, 18:23
 


[ Time: 0.1297s ][ Queries: 83 (0.0760s) ][ GZIP on - Debug on ]